Javascript HTML5音频:即使离开网站,音乐也不会停止
我正在用HTML5制作一个手机游戏。有一个背景音乐,在游戏过程中运行,最好在我导航到另一个页面时停止。。。这种逻辑在较旧的iphone和android上运行正常。 然而,在iPhone4和iPad上,音乐不会停止并继续播放(即使我导航到另一个网站),直到浏览器关闭。 当然,代码中还有一个调用music_var.pause()函数以及卸载处理程序。。。但这似乎根本不起作用。 music_var.pause()Javascript HTML5音频:即使离开网站,音乐也不会停止,javascript,iphone,ipad,html,html5-audio,Javascript,Iphone,Ipad,Html,Html5 Audio,我正在用HTML5制作一个手机游戏。有一个背景音乐,在游戏过程中运行,最好在我导航到另一个页面时停止。。。这种逻辑在较旧的iphone和android上运行正常。 然而,在iPhone4和iPad上,音乐不会停止并继续播放(即使我导航到另一个网站),直到浏览器关闭。 当然,代码中还有一个调用music_var.pause()函数以及卸载处理程序。。。但这似乎根本不起作用。 music_var.pause() 对这里发生的事情有什么想法吗?与audio标记有各种各样的差异,一些浏览器甚至在被告知时
对这里发生的事情有什么想法吗?与
audio
标记有各种各样的差异,一些浏览器甚至在被告知时不会暂停(再加上没有正确发出回调、预加载甚至工作)
为了避免此问题,您可以在暂停之前将
音量
参数设置为0
。尝试使用onbeforeunload停止音乐,因为当iPhone上的safari播放音乐时,即使退出应用程序,音乐也会继续在后台播放(有点像音乐在后台播放的方式)。如果双击home(主页)按钮,按住Safari图标直到出现减号按钮,然后点击减号,音乐应该停止。这是因为较旧的iPhone可能没有运行iOS4或更高版本(它具有多任务功能,即使不运行,也可以在后台播放safari的音乐)。设法找到了解决方案,如
使用循环检查用户是否在网页上。储存时间
var lastSeen;
var loop = function (){
lastSeen = Date.now();
setTimeout(loop, 50);
};
loop();
var music = document.getElementById('music');
music.addEventListener('timeupdate', function (){
if(Date.now() - exports.lastSeen > 100){
this.pause();
}
}, false);
这大概就是我的文件的样子。由于如果音频元素正在播放,timeupdate事件会持续激发,因此我只需检查上次调用循环的时间。如果它在100毫秒前被调用,我会暂停音乐。在我测试的iPad上工作得很有魅力。零代表什么?我是说数组??你是说如果我有音乐_var.src=something.mp3。。。那么我应该有音乐\u var[0]。暂停()。。。对吧?好吧。。。问题是我没有在标签中初始化这个。。。但是在javascript中。但我认为它也应该在那里起作用。。。将尝试并发回邮件。谢谢@AlienWebguy,你在胡说八道。闭嘴。