DoT*_*Evo 5 javascript firefox-addon html5-audio firefox-addon-sdk
AudioObj = new Audio;
Run Code Online (Sandbox Code Playgroud)
将返回"音频未定义"
我也尝试了经典修复:
var audio = require("audio");
Run Code Online (Sandbox Code Playgroud)
但没有运气.我可以在扩展的其他部分添加音频播放main.js,比如在某些内容脚本中工作,但也许有一个更简单和优雅的解决方案.
new Audio创建一个新的<audio>HTML元素 - 这仅适用于绑定到文档的上下文.SDK模块在没有文档的上下文中执行,因此没有DOM方法可以使用,包括这个.解决方法是about:blank通过page-worker模块加载并在那里注入内容脚本.然后,您可以向该内容脚本发送消息,并在需要时让它为您播放音频.
替代方案是使用nsISound.play(),这些是:
var {Cc, Ci} = require("chrome");
var sound = Cc["@mozilla.org/sound;1"].createInstance(Ci.nsISound);
var uri = Cc["@mozilla.org/network/io-service;1"]
.getService(Ci.nsIIOService)
.newURI(self.data.url(...), null, null);
sound.play(uri);
Run Code Online (Sandbox Code Playgroud)
请注意,nsISound很可能很快就会弃用.这是一个不如HTML5音频的旧API.
| 归档时间: |
|
| 查看次数: |
797 次 |
| 最近记录: |