2013-02-24 3 views
1

Я пытаюсь разработать базовое расширение Chrome, которое воспроизводит звук на основе события ввода речи (все происходит в фоновом режиме).Использование chrome.extension.getBackgroundPage() для воспроизведения аудиофайла

Вот мой манифест

{ 
    "manifest_version" : 2, 
    "name"    : "Test123", 
    "version"   : "1.0", 
    "description"  : "My audio extension", 

    "icons"   : { 
    "128"    : "icon.jpg" 
    }, 

    "permissions"  : [ 
    "experimental", 
    "background" 
    ], 

    "background"  : { 
    "persistent"  : true, 
    "scripts"   : [ 
     "bg.js" 
    ] 
    }, 
} 

В bg.js, я получаю window объект с var chrome.extension.getBackgroundPage();, но я не могу понять, что делать там.

Как воспроизвести аудиофайл?

ответ

2

Вот решение!

Прежде всего, загрузка музыкального файла на фоновой странице является хорошим решением. Но вы должны запускать выполнение вашего аудиофайла со всплывающей страницы. Вот сценарий:

// In popup.html 
<div id="play-it">Play</div> 

// dont forget to use an external script file 
$('#play-it').click(function(){ 
    chrome.extension.sendMessage({action: "play"}) 
}); 

Тогда в bg.js вы будете слушать сообщение

// In bg.js 
var audioElement = document.createElement('audio'); 
audioElement.setAttribute("preload", "auto"); 
audioElement.autobuffer = true; 

var source1 = document.createElement('source'); 
source1.type= 'audio/mpeg'; 
source1.src= 'http://lezotre.free.fr/Mp3/disco.mp3'; 
audioElement.appendChild(source1); 

chrome.extension.onMessage.addListener(
    function(request, sender, sendResponse) { 
     if (request.action == "play"){ 
      audioElement.load; 
      audioElement.play(); 
     } 
}); 

Вы найдете более подробную информацию о передачи сообщений на официальном Google Chrome документации: http://developer.chrome.com/extensions/messaging.html

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