new Audio
crea un nuovo elemento <audio>
HTML - questo funziona solo in un contesto che è destinato a un documento. I moduli SDK vengono eseguiti in un contesto, tuttavia, che non ha alcun documento, di conseguenza nessun metodo DOM funzionerà, incluso questo. Un work-around potrebbe caricare about:blank
tramite page-worker
module e iniettare lì uno script di contenuto. È quindi possibile inviare messaggi a quello script di contenuto e lasciarlo riprodurre l'audio per te ogni volta che ne hai bisogno.
L'alternativa sarebbe utilizzare nsISound.play()
, qualcosa in questo senso:
var {Cc, Ci} = require("chrome");
var sound = Cc["@mozilla.org/sound;1"].createInstance(Ci.nsISound);
var uri = Cc["@mozilla.org/network/io-service;1"]
.getService(Ci.nsIIOService)
.newURI(self.data.url(...), null, null);
sound.play(uri);
noti che nsISound
è likely to be deprecated presto. È una vecchia API che è inferiore all'audio HTML5.
fonte
2012-05-21 06:15:32
È possibile utilizzare invece jPlayer? –
Cosa succede quando consenti.log (nuovo Audio); o console.dir (Audio) I registri della console –
restituiscono che l'audio non è definito. Ho dato uno sguardo a jPlayer e sembra più un modo di creare un player in html e controllarlo e disegnarlo ... anche io non sono sicuro di come lo userei in main.js, a meno di incollarlo tutto dentro. – DoTheEvo