我的一位同事与Cordova一起制作了一个跨平台游戏应用程序。现在他正在度假,我遇到了问题,如果你按下主页按钮离开应用程序,应用程序的背景音乐仍在播放。如果你打个电话也是。
我尝试将Android <preference name="KeepRunning" value="false"/>
设置为true,但这并没有帮助。
知道该怎么做,处理这个问题?
答案 0 :(得分:1)
我自己找到了一个anwser:
我们必须设置<preference name="KeepRunning" value="true"/>
然后添加此事件:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
//
function onDeviceReady() {
document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
}
function onPause() {
// Handle the pause event
// Set loudness to zero
}
function onResume() {
// Handle the resume event
// Set loudness to one
}
如果KeepRunning设置为false,Cordova无法识别onPause / onResume事件。
答案 1 :(得分:1)
使用cordova pause
事件:
document.addEventListener('pause', function() {
// Tell your audio library to pause here
});
当用户重新打开应用时,resume
事件将会触发:
document.addEventListener('resume', function() {
// Tell your audio library to start playing again
});
答案 2 :(得分:1)
我的问题是,在应用程序恢复后触发了onPause事件。 -.- 但我可以找出一个有效的小黑客。至少对我而言:
document.addEventListener("visibilitychange", function() {
if (document.hidden) {
//onPause stuff
} else {
//onResume stuff
}
}, false);
当游戏最小化,设备关闭或标签切换时,这适用于Android。