Python et la musique ******************** les sons windows ---------------- Il existe pour cela depuis la version 2.7 de python un module standard .. code-block:: python import winsound # Play Windows exit sound. winsound.PlaySound("SystemExit", winsound.SND_ALIAS) # Probably play Windows default sound, if any is registered (because # "*" probably isn't the registered name of any sound). winsound.PlaySound("*", winsound.SND_ALIAS) jouer un fichier mp3 -------------------- il faut pour cela télécharger le module *mp3play* sur https://pypi.python.org/pypi/mp3play/ l'installation est classique :: python setup.py build python setup.py install l'utilisation est simple .. code-block:: python import mp3play filename = r'C:\Documents and Settings\Michael\Desktop\music.mp3' clip = mp3play.load(filename) clip.play() import time time.sleep(min(30, clip.seconds())) clip.stop() Par contre il ne lit pas de flux réseau interface pour mplayer ---------------------- Il existe des modules binding pour mplayer (http://www.mplayerhq.hu/) python-mplayer ~~~~~~~~~~~~~~ Il faut télécharger le module sur http://code.google.com/p/python-mplayer/ l'installation est classique :: python setup.py build python setup.py install .. note:: il faut avoir dans le PATH windows le répertoire d'installation de mplayer ou modifier os.environ['PATH'] pour ajouter ce dernier .. code-block:: python import os, os.path def we_are_frozen(): # All of the modules are built-in to the interpreter, e.g., by py2exe return hasattr(sys, "frozen") def module_path(): encoding = sys.getfilesystemencoding() try: #for python2 if we_are_frozen(): return os.path.dirname(os.path.realpath(unicode(sys.executable, encoding))) return os.path.dirname(os.path.realpath(unicode(__file__, encoding))) except: #for python3 if we_are_frozen(): return os.path.dirname(os.path.realpath(sys.executable)) return os.path.dirname(os.path.realpath(__file__)) os.environ['PATH'] = os.environ['PATH'] + ';%s\\bin\mplayer' % module_path() l'utilisation est simple .. code-block:: python from mplayer import Player # Since autospawn is True by default, no need to call player.spawn() manually player = Player() # Play a file player.loadfile('/path/to/file.mkv') # Pause playback player.pause() il y a peu de commande accessible mais les principales sont là mpylayer ~~~~~~~~ Il faut télécharger le module sur http://code.google.com/p/mpylayer/ l'installation est classique :: python setup.py build python setup.py install .. note:: il faut avoir dans le PATH windows le répertoire d'installation de mplayer l'utilisation est simple .. code-block:: python mp = mpylayer.MPlayerControl() mp.loadfile('/path/to/some_music.mp3') mp.volume = 100 mp.stop() il est beaucoup plus complet (gestion du volume, ...) une liste exhaustive des fonction peut être obtenue en réalisant le code suivant .. code-block:: python mp = mpylayer.MPlayerControl() help(mp) .. attention:: afin de récupérer la valeur volume, time_pos, ... j'ai réalisé une grosse modification dans le code de ce module (mpylayer_control.py) .. code-block:: python class SelectMPlayerControl(object): ... def _get_result(self): self._read_all() value = ''.join(self._buffer) if '=' in value: return value.split('=')[-1] return '' Piloté VLC ~~~~~~~~~~ Il est possible de piloté le célèbre player VLC (videolan.org) par python et cela de plusieurs façons. En effet il est possible de lancer vlc avec différentes interfaces: - web - telnet Il est alors possible de piloté vlc via ces interfaces en utilisant ces interfaces. En exemple de librairie utilisant l'interface telnet: https://github.com/DerMitch/py-vlcclient Il est aussi tout à fait possible d'utiliser la librairie vlc pour lire des médias. Il faut pour cela utiliser la librairie vlc.py et de s'assurer d'avoir dans son *PATH* la dll de vlc. On peut obtenir la librairie vlc.py via le site wiki de vlc (https://wiki.videolan.org/Python_bindings/)