2014-01-22 5 views
3

Я разрабатываю расширение firefox, и я хотел бы, чтобы он воспроизводил звук уведомления при возникновении события. Однако, несмотря на следующие инструкции от Play audio from firefox extension's data directory, звук не воспроизводится. Он хранится в моем каталоге данных. Вот мой код:firefox addon SDK не воспроизводит аудио с использованием нового звука

var pageworker = require ("sdk/page-worker"); 
let { setTimeout } = require("sdk/timers"); //setTimeout is not enabled by default in ff extensions 

function playSound(sound){ 
    console.log("playing sound: "+sound); 
    var soundPlayer = pageworker.Page({ 
    contentURL: data.url("blank.html"), 
    contentScript: "new Audio('notification-1.mp3').play();console.log('the audio did run')",//This is where it should play, but it doesn't, even if I remove the console.log 
    //The script does work if I type it into the javascript console, but replace the file name with a file:/// URL 
    }); 
    setTimeout(function(){soundPlayer.destroy();},5000);//destroy the sound player after 5 seconds 
} 

но хотя оба console.log «s называют, ни одной никогда не играет. Это как в XPI, так и при использовании cfx.

+1

Любые ошибки в консоли? Являются ли файлы html и mp3 хранятся в одной папке в данных? Если это так, попробуйте с абсолютным путем: '' new Audio ("+ data.url (" notification-1.mp3 ") +"). Play(); "' – willlma

+0

@willlma В консоли не было ошибок и использование data.url не помогло, к сожалению, – JackW

+0

На самом деле, похоже, что сработало (поначалу не по какой-то причине). Благодаря! Не стесняйтесь публиковать его в качестве ответа, и я помечаю его как решение. – JackW

ответ

2

Как было отмечено в комментариях, попробуйте использовать абсолютный URL в contentScript строки:

"new Audio("+data.url("notification-1.mp3")+").play();" 
+0

Это не сработало для меня, потому что аргумент 'Audio' должен быть строкой (по-видимому). Рабочее решение: '' new Audio (\ '"+ data.url (" notification-1.mp3 ") +" \'). Play(); "' – anderstood

Смежные вопросы