Ich erstelle eine Firefox-Erweiterung und kann keinen Sound abspielen, der sich im Verzeichnis data
des Add-ons befindet.
Das erste, was ich ausprobiert habe, war, es auf diese Weise in einem Inhaltsskript abzuspielen:
%Vor% Dabei ist self.options.soundFile
eine Option, die auf eine Ressourcendatei im Verzeichnis data
verweist. Aber ich treffe Sicherheitsrestriktionen:
Dann habe ich eine Möglichkeit gefunden, Sounds in main.js
script abzuspielen (hier: Wie Audio in einer Erweiterung wiedergegeben wird? ):
Dieser Befehl schlägt mit folgender Ausnahme fehl:
%Vor% Wenn ich sound.play(...)
durch sound.beep
ersetze, bekomme ich einen schönen Standard-Systemsound. Es sollte also etwas daran falsch sein, den Ressourcenpfad an die Funktion zu übergeben.
Wenn es in irgendeiner Weise wichtig ist, verwende ich Online-Add-on-Builder.
Bitte schlagen Sie eine Lösung für das Abspielen einer Lösung zum Abspielen von Audio-Erweiterungsressourcen vor.
nsISound.play()
benötigt eine nsIURI
Instanz, keine Zeichenfolge. Sie müssen es zuerst über nsIIOService.newURI()
erstellen:
Ich würde jedoch gegen diesen Ansatz empfehlen, nsISound.play()
API ist ziemlich veraltet und IMHO nicht Kann Ogg-Dateien trotzdem abspielen.
Audio
-Konstruktor benötigt Zugriff auf ein korrektes HTML-Dokument. Der einfachste Weg, um eine SDK-basierte Erweiterung zu erhalten, ist die Verwendung von page-worker
Modul :
Sowohl Ihre Sounddatei als auch blank.html
(eine leere HTML-Datei) müssen sich im Verzeichnis data/
der Erweiterung befinden. Beachten Sie, wie die Audiodatei über eine relative URL geladen wird. Im Moment sehe ich keine Möglichkeit, eine leere HTML-Datei in der Erweiterung zu vermeiden, HTML-Dateien außerhalb der Erweiterung haben keinen Zugriff auf Erweiterungsdateien und können sie nicht abspielen.
Tags und Links javascript firefox-addon firefox firefox-addon-sdk