2010-08-29 4 views
7

Je voudrais créer un simple module qui jouerait un enregistrement MP3 différent chaque fois que l'utilisateur double-clique sur un mot d'une page Web qu'il visite et sélectionne une option spéciale parmi menu contextuel.Jouer un son dans un add-on Firefox

Les fichiers MP3 se trouvent sur un serveur distant. Normalement j'utiliserais JavaScript + Flash pour lire le fichier MP3. Dans un add-on Firefox, cependant, je suis incapable de charger des scripts externes pour une raison quelconque (jouer le son fonctionne bien si c'est la page web elle-même qui charge les scripts, mais bien sûr, j'en ai besoin ceux qui incluent le script).

Alors, quel est le moyen le plus simple de lire un fichier MP3 distant dans un add-on Firefox en utilisant JavaScript?

Répondre

5

Cela peut ne pas résoudre entièrement votre question, car je ne crois pas qu'il joue des MP3, mais je ne suis pas certain.

Firefox a nsISound, que JE SAIS peut lire des fichiers WAV distants, comme je l'ai testé et prouvé.

Vous voudrez peut-être le tester par vous-même et voir si cela vous rapproche un peu plus!

var ios = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces.nsIIOService); 
var sound = ios.newURI("http://www.yoursite.com/snds/haha.wav", null, null); 
var player = Components.classes["@mozilla.org/sound;1"].createInstance(Components.interfaces.nsISound); 

player.play(sound); 

Bonne chance, j'espère que cela vous rapproche au moins!

0

Voir http://www.mozdev.org/pipermail/project_owners/2008-February/011041.html

=> nsISound

Vous ne pouvez pas lire les fichiers distants de XUL, qui est une restriction de sécurité. Vous pouvez charger un site Web qui joue le son comme solution de contournement.

+0

Comment puis-je jouer le son d'un site Web que je charge dans le plug-in? Je rencontre des problèmes étranges avec le chargement de scripts distants. Par exemple, j'ai un site Web qui charge des scripts JS et joue un son. Je l'ouvre dans un plugin. Mais pour une raison quelconque, cela ne fonctionne que lorsque j'ouvre le site pour la première fois dans le navigateur, puis j'ouvre le plugin depuis ce site. Alors SoundManager 2 (le script que j'utilise pour jouer des sons) ne semble pas fonctionner quand je charge le plugin à partir d'un site web différent, qui n'inclut pas les balises