设备锁定时停止播放HTML5音频(Android和iOS)

ror*_*cko 5 javascript audio html5

我正在开发一种具有循环音乐和声音效果的HTML5游戏.我使用的soundjs库createjs套件.

当我最小化Android设备和iOs设备上的浏览器时,声音继续播放.甚至在设备锁定时也是如此!这也是跨浏览器的情况(Safari,Chrome,Android Native,Firefox)

是否有一个简单的解决方案,或检测页面是否处于非活动状态并禁用声音更可能的解决方案?


我试过这个,认为当页面关闭时会超时,但事实并非如此.:(

var timeout = -1;
setInterval(function(){
     if(timeout!=-1) clearTimeout(timeout);
     timeout = setTimeout(function(){
         AudioManager.setMute(true);
     }, 200);
, 100);
Run Code Online (Sandbox Code Playgroud)

Mar*_*zzo 3

对我有用的是以下内容(使用 jQuery v2.1.4):

// Declare soundtrack as SoundJS object
soundtrack = createjs.Sound.play("main", {loop: -1});

$(window).focus(function() {
    // Unpause when window gains focus
    soundtrack.paused = false;
}).blur(function() {
    // Pause when window loses focus
    soundtrack.paused = true;
});
Run Code Online (Sandbox Code Playgroud)

每当 Safari 窗口失去焦点时,它就会暂停配乐。当它重新获得焦点时,它就会恢复。在 iPhone Safari iOS 9 上为我工作。