Speak English? Click here to read my English blog!

Créez un lecteur audio en python avec le module PyMedia

Posté par jbj le 24 sept 2007 dans Python4 commentaires

pyMedia est un module pour manipuler les fichiers wav, mp3, ogg, avi, divx, dvd et cdda.
Voyons ensemble comment réaliser un lecteur audio minimaliste en utilisant la classe player de pyMedia.

Avant de commencer

Le site du module: http://pymedia.org/
La documentation: Documentation

Installation sous GNU/Linux:
Pour les utilisateurs Debian/Ubuntu, un paquet .deb est disponible ici: paquet pymedia pour Debian/Ubuntu
Installez-le via votre gestionnaire de paquets.

Installation sous Windows:
Les utilisateurs de windows trouveront un fichier .exe ici
Ouvrez-le et il s’installera automatiquement.

Les exemples:

Un player audio minimal:

import pymedia
import time

player = pymedia.Player() #Création de l'objet player
player.start()
player.startPlayback('unFichierSon.mp3') #Chemin du fichier son à  lire

while player.isPlaying(): #On boucle tant que la lecture n'est pas terminée
    time.sleep( 0.01 )

Le module pymedia.player permet de lire facilement les types de fichiers musicaux supportés par pymedia.

Un meilleur exemple avec un Thread:

import threading
import time
import pymedia
from Tkinter import *

class playFile(threading.Thread):

	def __init__(self, file_name):
		global player
		threading.Thread.__init__ (self)
		player= pymedia.Player()
  		player.start()
		self.keepGoing = True
  		player.startPlayback(file_name)

	def run(self):
		global player
		while player.isPlaying() and self.keepGoing:
    			time.sleep( 0.01 )

	def stop(self):
		global player
		player.stopPlayback()
		self.keepGoing = False

def play():
    global pf
    pf = playFile("a.mp3") #le fichier son à  jouer
    pf.start()

def stop():
    global pf
    pf.stop()

#La GUI
root= Tk()
play = Button(text="play", command=play)
play.pack()
stop = Button(text="stop", command=stop)
stop.pack()
e = Entry()
e.pack()
root.mainloop()

Cet exemple utilisant les Threads, il est necessaire de s’assurer que tous les threads ont été stoppés avant de quitter l’application, sinon gare aux mauvaises surprises. L’utilisation du thread permet -outre le fait de disposer d’une classe totalement réutilisable- l’execution simultanée de deux portions de code distinctes, à savoir l’interface graphique Tk et les fonctions de controle du son.

La documentation du module pymedia.player liste les différentes méthodes disponibles.

Si vous avez aimé cet article, aidez-moi à le promouvoir en votant pour lui sur les sites suivants: Ces icones representent les sites de bookmarking social dans lesquels vos lecteurs peuvent partager et faire découvrir vos pages.
  • del.icio.us
  • Scoopeo
  • Tapemoi
  • Technorati
  • Tutmarks
  • Pioche
  • Blogasty
  • Diggons
  • Wikio
Tags: , ,

4 commentaires

» Flux RSS des commentaires
  1. Crez un lecteur audio en python avec le module PyMedia…

    pyMedia est un module pour manipuler les fichiers wav, mp3, ogg, avi, divx, dvd et cdda.
    Voyons ensemble comment raliser un lecteur audio minimaliste en utilisant la classe player de pyMedia….

  2. Créez un lecteur audio en python avec le module PyMedia…

    pyMedia est un module pour manipuler les fichiers wav, mp3, ogg, avi, divx, dvd et cdda. Voyons ensemble comment réaliser un lecteur audio minimaliste en utilisant la classe player de pyMedia….

  3. Attention tu as oublié d’importer Time dans ton premier exemple, juste après “import pymédia”

  4. Bien vu! Merci pour ta vigilance :)

Commenter