Envoyé par : Geceo
Date : 06/06/2005 12:00
Bonjour,
Je voudrais développer une application Gecko qui serait capable de lire un fichier MP3.
Pour qu'on se comprenne bien : je sais qu'en cliquant sur un fichier MP3 dans Mozilla, ça lance un lecteur externe. Mais le problème, c'est que mon application XUL aura besoin d'une fonction bien précise, qui n'est pas "appelable" de l'extérieur dans les applications graphiques du genre XMMS ou Media Player.
Pour être plus clair, il s'agit d'une fonction qui permettrait de lire seulement un passage du fichier MP3, quelque chose comme :
lire (fichier, debut, fin)
qui lance la lecture de fichier
à partir de l'instant debut
(en secondes) et arrête la lecture à l'instant fin
Donc voici mes questions :
1/ Est-ce qu'il y a déjà eu des applications audio construites autour de Gecko?
2/ Connaissez-vous un composant XPCOM capable de décoder un fichier MP3?
Je précise que j'ai trouvé Audiere mais j'ai l'impression qu'il n'est plus maintenu (la dernière news date de 2003).
Merci de vos réponses!
Geceo
PS : J'ai posté le même message sur Geckozone et on m'a conseillé de demander plutôt sur Xul-fr.
Envoyé par : laurentj
Date : 06/06/2005 13:11
1) pas à ma connaissance
2) je ne pense pas que cela existe
Le mieux est effectivement d'utiliser une bibliothèque externe comme audière, et de te faire un XPCOM en C++ qui se baserait sur cette bibliothèque.
Envoyé par : Paul Rouget
Date : 09/06/2005 17:37
Ca existe deja: http://xullicious.blogspot.com/2005/06/xul-music.html
Envoyé par : Geceo
Date : 10/06/2005 11:29
Merci pour l'information, ça semble intéressant. J'ai un peu de mal à trouver comment on peut compiler XulRunner. J'ai fait :
export CVSROOT=":pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot"
cvs co mozilla/client.mk mozilla/xulrunner/config
cd mozilla
export MOZ_CO_PROJECT=xulrunner
gmake -f client.mk
Là il télécharge tous les fichiers sur le CVS (ça prend plusieurs minutes), mais il plante à la fin du "configure" en me disant qu'il faut "--enable-application=APP".
Donc je me suis qu'avec :
./configure --enable-application=APP
ça passerait, mais ça ne change rien. Avez-vous une solution? C'est la première fois que je compile du Mozilla, et je n'ai rien trouvé sur Google. Ça doit vraiment être une erreur basique, mais si vous pouviez m'aider, ça serait sympa.
À bientôt, Geceo
Envoyé par : Geceo
Date : 10/06/2005 11:35
Quel idiot! Il fallait évidemment faire :
./configure --enable-application=xulrunner
Et maintenant je peux compiler!
« Quand le sage montre la lune, l'idiot regarde le doigt. »
Geceo
Envoyé par : Geceo
Date : 14/06/2005 19:27
Bonjour,
J'ai étudié le code de Xul Music et effectivement ça résoud une partie de mon problème, à savoir l'ouverture et la lecture d'un MP3 dans Mozilla. Il y a même dans l'interface du composant XPCOM une fonction setPosition (in long position)
qui se rapproche de la fonction lire(fichier, debut, fin)
dont j'ai parlé dans mon premier message.
Le souci que j'ai, c'est qu'une fois que j'aurais appelé setPosition
et que la lecture aura commencé, il faudra détecter que le lecteur atteint (ou dépasse) l'instant fin
pour savoir quand il faut appeler player.stop()
... Sur ce point :
read(in long start, in long end)
dans les fichiers Win32Track.cpp et GstTrack.cpp? Merci pour vos conseils et à bientôt,
Geceo
Envoyé par : Geceo
Date : 15/06/2005 10:08
Bonjour,
Pour mon histoire de fonction lire(debut,fin), c'est en passe d'être résolu. L'auteur de Xul Music multiplie la position récupérée par l'interface (en secondes) par 10000000 dans Win32Track.cpp, et par 1000000000 dans GstTrack.cpp, afin de s'adapter aux unités utilisées par DirectX et GStreamer, respectivement. Il suffit donc de multiplier par un nombre 10 fois plus petit dans chaque cas pour pouvoir être 10 fois plus précis dans la position passée au lecteur.
Pour la question de l'instant de fin, j'ai vu que la méthode setPositions de DirectShow pouvait le prendre en paramètre. Par contre dans GStreamer, la méthode gst_element_seek n'est pas très explicite.
Le plus dur sera de recompiler le composant XPCOM.
Geceo
Envoyé par : Geceo
Date : 20/04/2006 18:52
Bonjour,
J'ajoute un dernier retour d'expérience sur ce projet qui remonte maintenant à pratiquement un an, pour dire que je n'ai pas réussi à recompiler le composant XPCOM avec le compilateur fourni gratuitement par Microsoft (Microsoft Visual C++ Toolkit 2003). En effet, pour décoder un MP3, le composant XUL Music utilise DirectX, et Cygwin/g++ ne pouvait pas le faire. Ce fut une grosse déception pour moi car c'était pour mon travail, et finalement j'ai été contraint de garder l'application en Java que j'avais déjà écrite auparavant (elle fonctionne, mais ça reste du Java, donc pas rapide et assez moche).
Cependant, je reste intéressé par le sujet et si quelqu'un peut me donner l'adresse d'un site qui explique étape par étape les manipulations à effectuer pour parvenir à recompiler le composant XPCOM qui m'intéresse, avec un compilateur gratuit (j'insiste!), il est vraiment le bienvenu.
Geceo
Envoyé par : Paul Rouget
Date : 22/04/2006 01:18
J'utilise ce compilateur (Microsoft Visual C++ Toolkit 2003 - version gratuite) et je m'en suis sortis. J'utilise aussi de lib extérieurs. C'est vrai que pour quelqu'un venant du monde Unix comme moi, ce n'a pas été trivial, mais une fois le pb de compilation passé, ça roule.
Quel était ton probleme exactement ?
Envoyé par : Paul Rouget
Date : 22/04/2006 01:19
ha, et pour info, j'ai aussi travaillé sur des composants de lecture audio multiplateforme.
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.