Javascript 使用chrome.extension.getBackgroundPage()播放音频文件

Javascript 使用chrome.extension.getBackgroundPage()播放音频文件,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正试图开发一个基本的Chrome扩展,根据语音输入事件(一切都发生在后台)播放声音 这是我的舱单 { "manifest_version" : 2, "name" : "Test123", "version" : "1.0", "description" : "My audio extension", "icons" : { "128" : "icon.jpg"

我正试图开发一个基本的Chrome扩展,根据语音输入事件(一切都发生在后台)播放声音

这是我的舱单

{
  "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
中,我使用
var chrome.extension.getBackgroundPage()获取
窗口
对象,但我不知道该怎么做

如何播放音频文件?

以下是解决方案

首先,在后台页面加载音乐文件是一个好的解决方案。但是您必须从弹出页面触发音频文件的执行。以下是脚本:

 // 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"})
 });
您将在google chrome官方文档中找到有关消息传递的更多信息:

 // 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();
      }
});