new Audio
crea un nuevo elemento HTML <audio>
- esto sólo funciona en un contexto que está enlazado a un documento. Los módulos SDK se ejecutan en un contexto que no tiene ningún documento, por lo tanto, no funcionarán los métodos DOM, incluido este. Una solución alternativa sería cargar about:blank
a través de page-worker
module e inyectar allí un script de contenido. A continuación, puede enviar mensajes a ese script de contenido y dejar que reproduzca audio siempre que lo necesite.
La alternativa sería el uso de nsISound.play()
, algo a lo largo de estas líneas:
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);
Tenga en cuenta que es nsISound
likely to be deprecated pronto. Es una antigua API que es inferior al audio HTML5.
¿Podría usar jPlayer en su lugar? –
¿Qué sucede cuando console.log (audio nuevo); o console.dir (Audio) –
registros de la consola solo devuelve que el audio no está definido. Eché un vistazo a jPlayer y parece más una forma de crear un reproductor en html y controlarlo y diseñarlo ... tampoco estoy muy seguro de cómo lo usaría en main.js, excepto de pegarlo todo. – DoTheEvo