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

Stop HTML5 audio from playing when device is locked (Android & iOS)

本文关键字:音频 HTML5 Android iOS 播放 锁定 定时      更新时间:2023-09-26

我正在开发一款具有循环音乐和声音效果的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);

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