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

时间:2013-02-24 14:07:19

标签: javascript google-chrome google-chrome-extension

我正在尝试开发基于语音输入事件播放声音的基本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中,我使用window获取了var chrome.extension.getBackgroundPage();对象,但我无法确定该怎么做。

如何播放音频文件?

1 个答案:

答案 0 :(得分: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