Python et la musique¶
les sons windows¶
Il existe pour cela depuis la version 2.7 de python un module standard
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
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
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
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
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
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)
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/)