Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设备锁定时停止播放HTML5音频(Android和iOS)_Javascript_Html_Audio - Fatal编程技术网

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

Javascript 设备锁定时停止播放HTML5音频(Android和iOS),javascript,html,audio,Javascript,Html,Audio,我正在开发一款HTML5游戏,具有循环音乐和音效。我用的是电话号码 当我最小化Android设备和iOs设备上的浏览器时,声音会继续播放。当设备被锁定时,情况更是如此!跨浏览器(Safari、Chrome、Android Native、Firefox)也是如此 是否有一个简单的解决方案,或者检测页面处于非活动状态并禁用声音是一个更可能的解决方案 我尝试了这个,认为当页面关闭时会触发超时,但它没有:( 对我有用的是以下内容(使用jQuery v2.1.4): 每当Safari窗口失去焦点时,它都

我正在开发一款HTML5游戏,具有循环音乐和音效。我用的是电话号码

当我最小化Android设备和iOs设备上的浏览器时,声音会继续播放。当设备被锁定时,情况更是如此!跨浏览器(Safari、Chrome、Android Native、Firefox)也是如此

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


我尝试了这个,认为当页面关闭时会触发超时,但它没有:(


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


每当Safari窗口失去焦点时,它都会暂停音轨。当它恢复焦点时,它会继续。在iPhone Safari iOS 9上为我工作。

你试过使用?@ThiefMaster吗?我没有,它看起来很有趣,但没有足够的设备支持。只有最新的移动操作系统iOS 7版和安卓4.4.Soun支持dJS内部不处理这个问题。我还打算推荐页面可见性API,以检测页面失去焦点并禁用响应声音。祝你好运。@OJay我理解这一点。页面可见性API似乎是最好的(唯一的)解决方案。尽管它跨平台的兼容性很差。它只有android 4.4支持(KitKat,尚未发布)和刚刚发布的iOS7。因此,该解决方案实际上只能解决25%用户的问题(使用之前发布的游戏中的谷歌分析)
var timeout = -1;
setInterval(function(){
     if(timeout!=-1) clearTimeout(timeout);
     timeout = setTimeout(function(){
         AudioManager.setMute(true);
     }, 200);
, 100);
// 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;
});