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

时间:2013-11-04 13:27:51

标签: javascript html5 audio

我正在开发一款具有循环音乐和声音效果的HTML5游戏。我正在使用soundjs library中的createjs suite

当我最小化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);

1 个答案:

答案 0 :(得分:2)

对我有用的是以下(使用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上为我工作。