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