Chrome扩展事件页面w/音频永远不会停止
Chrome Extension Event Page w/ Audio Never Stops
我有Chrome扩展,包括一个弹出窗口和一个事件页面,在后台运行。Event页面非常简单:它注册一个onMessage
侦听器,当调用该侦听器时,它创建一个Audio
对象,并以远程.mp3文件作为源文件并播放它。当Event页面收到另一条消息并且正在播放音频时,它会暂停音频并停止播放。
var audio;
chrome.runtime.onMessage.addListener( function(message, sender, sendResponse) {
if (audio && !audio.paused) {
audio.pause();
audio.src = '';
audio.load();
audio = null;
sendResponse({});
} else {
audio = new Audio("http://path/to/audio/file.mp3");
audio.play();
sendResponse({});
}
});
弹出跳转只是向Event页面发送消息以开始播放音频。当事件页面接收到第二条消息时,音频播放良好并停止播放,但问题是,当事件页面接收到第二条消息时,暂停并将音频源设置为空String
,事件页面永远不会消失。它会像Background
页面一样保存在后台,永远不会进入非活动状态。
我试着这样创建audio
变量,看看是否使用Audio
构造函数导致了这个问题:
audio = document.createElement('audio');
但它的行为没有任何不同。然后我尝试将preload
属性设置为none
而不是auto
,但无济于事。我想知道如果Chrome正在打开一个套接字来加载mp3文件,并没有正确关闭它,所以事件页面仍然认为它是活跃的,因为打开的套接字,但这只是猜测在这一点上…
我是否需要做一些其他的事情来"卸载"音频,以便事件页面在音频不播放时进入非活动状态?
Chrome升级到36版后,Event页面在Audio元素被卸载后变为非活动
相关文章:
- 如何播放部分音频文件
- 音频控件在mouseover上显示,在mouseout上淡出
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 是否可以在浏览器中使用纯JavaScript保存音频流
- angular不会更改json的音频源
- 通过幻灯片更改事件停止使用jquery的音频
- 音频和动画在javasctipt循环中同步
- 成功回调永远不会被JSONP请求调用
- 使用jQuery控制来自图像的音频
- 调整<音频>元素
- javascript:发送带有音频文件的POST,然后重定向到新页面
- 使用带有CefSharp或CefGlue的JavaScript的本地或流式音频
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- 动态加载的自定义javascript/jQuery/HTML5音频播放器的问题
- 永远不要停止gif预加载程序
- <的自定义进度条;音频>并且<进度>HTML5元素
- 当用户点击音频控件时,无法接收点击事件
- Html5音频时间更新精度
- HTML5音频循环通过不同的来源永远
- Chrome扩展事件页面w/音频永远不会停止