0

我正在尝试开发一个基于语音输入事件(一切都在后台发生)播放声音的基本 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();,但我不知道从那里做什么。

如何播放音频文件?

4

1 回答 1

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 中你会听到 Message

 // 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

于 2013-02-25T09:27:03.203 回答