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 Python5 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.

Tags: , ,

5 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 :)

  5. Bonjour jbj,
    j’ai dessiner un lecteur multimedia en python, et pour terminer j’aimerai activer le bouton play et stop a partir des fonctions play et stop de vlc, et j’aimerai les appelées dans mon code python afin de pour faire la lecture d’une video dans mon lecteur.
    Plus simplement, j’aimerai creer une fonction play qui fait appele a la fonction play de vlc.
    vu que je n’arrivai pas a trouver de solution je me suis rabattu sur pymedia et en particulier sur les 2 exemples que tua posté mais en les lancant je n’ai aucun son qui sort de mon pc, peux m’expliquer a quoi cela est du?
    Aussi si tu a une solution pour mon probleme general peux tu m en faire part, ce serai tres gentil.
    Merci

Commenter