Jouer un fichier .wav en Python sur la brique EV3
Méthode de la classe Sound pour jouer un fichier Wav
L'affichage d'un fichier image s'effectue par l'invocation de la méthode play_file() de la classe Sound. Cette instruction est équivalente à la brique graphique ci-dessous :
Elle est déclarée comme ci-dessous :
play_file(wav_file, volume=100, play_type=0)
play_file(wav_file, volume=100, play_type=0)
Programmation
from ev3dev2.sound import Sound
HP = Sound()
HP.play_file("res/sounds/Fanfare.wav")
HP = Sound()
HP.play_file("res/sounds/Fanfare.wav")
Explications
- La classe Sound est importée à partir du module sound de la bibliothèque ev3dev2.
- La classe Sound n'est instanciée qu'une seule fois. Cette instance est affecté à une constante globale HP.
- Pour jouer un fichier son, on invoque la méthode play_file() de la classe Sound sur l'instance HP.
- Le paramètre wav_file de la méthode play_file() est une chaîne de caractères contenant le chemin relatif par rapport au fichier du programme Python qui l'utilise.
Utilisation des fichiers sons de Lego
Le logiciel de programmation par briques graphiques livré avec le kit du robot Lego MindStorm dispose de nombreuses images. Pour les utiliser, il faut le recopier dans le projet du programme.
En principe les fichiers des images Lego se trouvent dans le répertoire C:\Program Files\LEGO Software\LEGO MINDSTORMS EV3 Home Edition\Resources\BrickResources\Retail\Sounds\files.
Le problème de ces fichiers c'est qu'ils ont l'extension .rsf. Or la méthode play_file() de la classe Sound n'accepte que des fichiers dont l'extension est .wav. Cependant, les fichiers .rsf de Lego sont bien structurés comme des fichiers .wav. Il suffit donc de les renommer avant de les recopier dans le projet Python.
Le problème de ces fichiers c'est qu'ils ont l'extension .rsf. Or la méthode play_file() de la classe Sound n'accepte que des fichiers dont l'extension est .wav. Cependant, les fichiers .rsf de Lego sont bien structurés comme des fichiers .wav. Il suffit donc de les renommer avant de les recopier dans le projet Python.
Commentaires
Enregistrer un commentaire