javascript - iOS6/7 使用网络音频 API 停止声音进入后台

标签 javascript html ios6 ios7 web-audio-api

对于iPhone或iPad进入后台后声音一直播放的问题,有不同的解决方案,其中最多的是HMTL5 audio tag。 ,但如果您使用的是 Web Audio API,则不相关,因为没有像 "timeupdate" 这样的事件,当然这是一个不同的概念。 <强> Page Visibility API 仅当您更改选项卡时才在 iOS7 中有效,但如果您转到后台则无效,在 iOS6 中则完全无效。

如果您在 iOS6 或 iOS7 中进入后台,有人知道使用 Web Audio API 停止/静音声音的方法吗?

最佳答案

要检测 Safari 何时进入后台,您可以使用名为 pageshowpagehide 的窗口事件(但您已经发现了这一点)。

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/

相关文章:

javascript - "with"语句的效率如何?

javascript - 使用 html 中的文本切换显示/隐藏的 jquery 和 css 解决方案

javascript - 使用 AWS SDK (S3.putObject) 将可读流上传到 S3 (node.js)

html - 无法从 SoundCloud HTML5 Widget API 获取 Getters

ios - 我们可以在 iPhone 的同一项目中的两个单独的 .mm 文件中使用两个头文件吗

javascript - 访问对象标签内/外的对象

html - 下载箭头辅助 - 下载文件,并在文件所在位置显示箭头

javascript - 在 html 页面中的 2 个元素之间画线

iphone - iOS6 中的 AudioToolBox 泄露?

iphone - 我可以支持 iOS 3.0 到 6.0 版本吗?