我对JavaScript比较陌生,我正在为iPad上的Safari Mobile(iOS 10.2.1)开发游戏。
当游戏启动时,播放背景音乐(与市场上的任何其他游戏一样)。 如果游戏页面失去焦点,音乐将停止播放,直到页面再次获得焦点时才会播放。
如果调用新标签页或关闭浏览器,则不会出现问题,但如果用户按下电源按钮或关闭iPad智能保护盖并将设备置于暂停模式,则会出现异常行为:音乐停止,但音频文件以某种方式传递给音乐应用程序,显示可见和可玩(请看下面的屏幕截图)。
我试图取消设置音频变量onblur事件:
backgroundMusic = new Audio("pathToAudio");
window.addEventListener("blur", function(e) {
delete backgroundMusic;
}
var backgroundMusic = new Audio("pathToAudio");
window.addEventListener("blur", function(e) {
backgroundMusic = null;
}
var backgroundMusic = new Audio("pathToAudio");
window.addEventListener("blur", function(e) {
backgroundMusic = (function(){}());
}
查看JavaScript在stackoverflow上取消设置变量的方法:
How to unset a JavaScript variable?
How to unset variable using javascript?
但没有任何作用...... 我怎么能防止这种行为发生?
!!!拜托,jQuery中没有装扮!!!
答案 0 :(得分:0)
无法取消设置我的音频,但我可以通过更改模糊事件中音频文件的路径来防止这种奇怪的行为。
backgroundMusic.src = "";
在焦点上,可以将路径设置回原始路径。