2013-07-23
Objectif : créer un lecteur audio avec GStreamer en langage Vala.
GStreamer est un framework multimédia et multi-plateforme du projet GNOME.
Assez comparable à FFmpeg, il fournit une couche d'abstraction pour des bibliothèques multimédia sous-jacentes (comme mpg123, libx264...) et présente une API GObject uniforme au développeur.
Je viens d'ajouter des paquets GStreamer au dépôt ValaWinPKG. Nous allons nous en servir pour créer un lecteur audio simple mais efficace.
Si nécessaire, nous installons les dernières versions de Vala et ValaWinPKG pour Windows :
Nous lançons ValaWinPKG à partir du menu Démarrer.
Nous activons ensuite TOUS les paquet intitulés "GStreamer[...]" et cliquons sur "Update !"

P.S. : télécharger l'ensemble des dépendances pourra prendre un certain temps.
Nous allons compiler ce code source.
L'essentiel du code est simple à comprendre ; les parties importantes sont :
pipeline = ElementFactory.make ("playbin", "player");
pipeline.set ("uri", args[1]);
crée un élément standard nommé playbin, et définit son uri comme étant le premier argument de la ligne de commande : ce sera le fichier à lire.
Puis :
pipeline.set_state (State.PLAYING);
jouera réellement le contenu de cet élement.
Nous compilons grâce à la commande :
valac --pkg gstreamer-1.0 gstreamer-player.vala
Nous lançons le programme grâce à ce type de commande :
gstreamer-player.exe file:///C:/myaudiofile.mp3
Voilà !
J'ai testé la lecture avec les formats suivants : WAV (PCM), MP3, AAC, FLAC, AC3, OGG (Vorbis).
Tout a fonctionné 😃.