8
votes

Jouer un son dans un add-on Firefox

Je voudrais créer un complément simple qui jouerait un autre enregistrement MP3 chaque fois que l'utilisateur clique sur un mot dans une page Web qu'il visitent et sélectionne une option spéciale dans le menu contextuel.

Les fichiers MP3 sont situés sur un serveur distant. Normalement, j'utiliserais JavaScript + Flash pour lire le fichier MP3. Dans un complément de Firefox, cependant, je suis incapable de charger des scripts externes pour une raison quelconque (la lecture du son fonctionne bien si c'est la page Web elle-même qui charge les scripts, mais bien sûr, j'en ai besoin pour travailler avec chaque site Web et non seulement ceux qui incluent le script).

Alors, quel est le moyen le plus simple de lire un fichier MP3 distant dans un add-on Firefox à l'aide de JavaScript?


0 commentaires

4 Réponses :


5
votes

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

Firefox a nsisound, que je connais peut jouer des fichiers WAV à distance, comme je l'ai testé et prouvé. p>

Vous voudrez peut-être le tester pour vous-même et voir si cela vous mène un peu plus près! P>

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);


0 commentaires

0
votes

Voici un code de travail ....

var sound = Components.classes["@mozilla.org/sound;1"].createInstance(Components.interfaces.nsISound); 
var soundUri = Components.classes['@mozilla.org/network/standard-url;1'].createInstance(Components.interfaces.nsIURI); 
soundUri.spec = "chrome://secchat/content/RING.WAV"; 
sound.play(soundUri);  


0 commentaires

0
votes
var window = require('sdk/window/utils').getMostRecentBrowserWindow();
var audio = ('http://example.com/audio.mp3');
audio.play();

0 commentaires

0
votes

Je sais que c'est une vieille question, mais si quelqu'un a besoin d'un moyen de le faire:

let player = document.createElement("audio");
player.src = browser.runtime.getURL(SOUND_URL);
player.play();


0 commentaires