【问题标题】:ios pause audio when page was changedios在页面更改时暂停音频
【发布时间】:2015-01-29 05:25:13
【问题描述】:

问题出现在装有 IOS 8.0.1 的 iPad 上。 在 page1.html 上播放的是无限音频 我想如果我转到另一个页面(例如 page2.html),声音会停止播放,但它仍然在播放。 我尝试使用 unload、pagehide 和 visibilitychange 事件来阻止它,但我所有的努力都失败了。

代码

<audio id="sound" loop src="audio/baby.mp3"></audio>
<script>        
        var player = document.getElementById("sound");
        window.addEventListener("unload", function () {
            player.pause();
        });
        if ('onpagehide' in window)
            window.addEventListener("pagehide", function () {
            player.pause();
        });    
        if ('onvisibilitychange' in window)
            window.addEventListener("visibilitychange", function () {
            player.pause();
        });
</script>

只有当我重新加载激活它的页面时,声音才会停止。

【问题讨论】:

  • 使用页面可见性 API 在跨浏览器中查找主题,但在标签更改、最小化浏览器或转到其他 url 时根本不会触发事件 'visibilitychange'。

标签: ios ipad caching audio html5-audio


【解决方案1】:

找出答案!

可能是 Safari 的错误: 使用原生属性“loop”你不能停止音频。

所以我用我自己的循环函数替换了它,包括页面可见性检查

player.addEventListener("ended", function() {
                    if (windowVisible)
                        player.play();
                });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多