5

我正在开发一个具有循环音乐和音效的 HTML5 游戏。我正在使用createjs 套件中的soundjs 库

当我在 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);
4

1 回答 1

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;
});

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

于 2016-02-25T00:08:58.307 回答