我开发的游戏是 html5、Jquery、Javascript,我需要预加载几个音频。这些音频正在一个接一个地播放,但是当我将 iPad 最小化时,音频仍在播放。 任何人都可以在浏览器最小化时帮助暂停音频吗?当浏览器进入前台时,音频应该播放。
最佳答案
我已经完成了一半,可以为您提供完整的解决方案。这是我到目前为止所拥有的:
var audio = document.getElementsByTagName('audio')[0];
window.onpageshow = function() {
audio.play();
}
window.onpagehide = function() {
audio.pause();
}
因此,只要您在关闭 Safari 时在应用程序选项卡上,它就会暂停音频。并在您重新启动时播放它。当您更改标签时它不会停止。
如果您的应用程序是 apple-mobile-web-app-capable
,当您使用主屏幕按钮打开应用程序时,这将触发 onpageshow
,并在你关闭它。它并没有完全暂停,因为重新打开它会强制它从头开始。您必须使用 localStorage 或其他工具捕获您在轨道中的位置,然后在您重新打开它时将 currentTime
设置为该时间。
看起来您将能够使用 Visibility API根据 caniuse.com 在 iOS 7 中
为了历史的缘故,我至少要陈述一些我尝试过的其他事情。
- window.onblur
使用带有 setTimeout 的 requestAnimationFrame(这适用于台式机,但不适用于 iOS)
var t; requestAnimationFrame(function checkWindow() { if ( audio.paused ) { audio.play(); } clearTimeout(t); t = setTimeout(function() { audio.pause(); }, 32); });
关于javascript - 最小化 iPad 浏览器 safari 时仍在播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17539373/