当进程处于后台时,如何在 Android Chrome 中禁用音频播放?

Tho*_* II 5 javascript android google-chrome

如何以编程方式禁止在 Chrome Android 进程的后台播放歌曲?

这是一个在 Chrome 中播放歌曲的页面的简单示例:

https://thomashunter.name/examples/chrome-audio-bug.html

var song = new Audio('song.ogg');
song.loop = 'loop';

button = document.getElementById('play');

button.addEventListener("click", function() {
  song.play();
});
Run Code Online (Sandbox Code Playgroud)

注意歌曲将如何在后台继续播放。虽然对自动点唱机来说很好,但它会让网络游戏的玩家发疯。

有没有办法Audio在 Chrome 中禁用单个元素的后台播放?或者,当页面失去焦点时是否至少有一个回调,以便我可以运行song.stop()

Mat*_*ini 3

您可以尝试使用visibilitychange

document.addEventListener('visibilitychange', function(){
    if (document.hidden) {
        // Document is hidden 

        // This re-initialize the audio element
        // to release the audio focus
        song.load(); 
    }
    else {
        // Document is focused
    }
},false);
Run Code Online (Sandbox Code Playgroud)

完整的示例可以在这里找到https://jsfiddle.net/6001wsf9/

在 Android 5.0 和 Chrome 43.0.2357.78 上进行测试