对于iPhone或iPad进入后台后声音一直播放的问题,有不同的解决方案,其中最多的是HMTL5 audio tag。 ,但如果您使用的是 Web Audio API,则不相关,因为没有像 "timeupdate" 这样的事件,当然这是一个不同的概念。 <强> Page Visibility API 仅当您更改选项卡时才在 iOS7 中有效,但如果您转到后台则无效,在 iOS6 中则完全无效。
如果您在 iOS6 或 iOS7 中进入后台,有人知道使用 Web Audio API 停止/静音声音的方法吗?
最佳答案
要检测 Safari 何时进入后台,您可以使用名为 pageshow
和 pagehide
的窗口事件(但您已经发现了这一点)。
document.addEventListener('pageshow',function(){
// Do something here
}, false);
document.addEventListener('pagehide',function(){
// Do something here
}, false);
您还可以使用 PageVisibility API ( available since iOS7 ) 检查选项卡是否已更改。
document.addEventListener('visibilitychange', function(){
if (document.hidden) {
// Tab out of focus
}
else {
// Tab on focus
}
},false);
请注意,此代码应适用于 iOS7 后的 safari,但某些浏览器需要前缀。
关于javascript - iOS6/7 使用网络音频 API 停止声音进入后台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20472442/