开发者

Playing a sound in a Firefox add-on

I would like to create a simple add-on that would play a different MP3 recording every time the user double clicks a word in a webpage he is visiting and selects a special option from the context menu.

The MP3 files are located on a remote server. Nor开发者_StackOverflow中文版mally I would use JavaScript+Flash to play the MP3 file. In a Firefox add-on, however, I'm unable to load external scripts for some reason (playing the sound works fine if it's the webpage itself that loads the scripts, but of course I need it to work with every website and not just the ones that include the script).

So what's the easiest way to play a remote MP3 file in a Firefox add-on using JavaScript?


This may not entirely solve your question, as I don't BELIEVE it plays MP3s, but I'm not certain.

Firefox has nsISound, which I KNOW can play remote WAV files, as I've tested and proved it.

You may want to test it for yourself and see if it leads you a little closer!

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

Good luck, I hope this at least gets you close!


I know this is an old question, but if someone needs a way to do it:

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

There is one caveat: the user must have allowed autoplay on the website.


Here is a working code....

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


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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜