我是Cordova的新手,我很想找到解决方案,我的应用程序中有20种声音,当我运行该应用程序时,该应用程序首先单击“仅音频”,然后忽略/拒绝其他声音 代码:
document.addEventListener('deviceready', onDeviceReady, false);
function onDeviceReady() {
document.querySelector("#playMp3Mild").addEventListener("touchend", playMp3Mild, false);
document.querySelector("#stop").addEventListener("touchend", stopAudio, false);
document.querySelector("#pause").addEventListener("touchend", pauseAudio, false);
};
media = null;
mediaTimer = null;
function playMp3Mild(src) {
mp3URL = getMediaURL(src);
if(media === null){
media = new Media(mp3URL , null, mediaError);
}
media.setVolume(0.1);
media.play();
}
function stopAudio() {
if (media) {
media.stop();
}
clearInterval(mediaTimer);
mediaTimer = null;
}
function getMediaURL(s) {
if(device.platform.toLowerCase() === "android") return "/android_asset/www/" + s;
return s;
}
function mediaError(e) {
}
我尝试删除此行if(media === null)
这是可行的,但现在我又遇到了另一个问题,所有音频同时工作。
非常抱歉我的英语不好,我相信与社区合作会更好
答案 0 :(得分:0)
您可能想先尝试停止旧媒体,因为您覆盖了媒体变量,而不是停止旧媒体。然后将旧媒体值设置为null,这样您的if(media === null)语句将返回true。 media.stop()不会使媒体等于null。 请尝试以下操作,并告诉我们是否适合您。
function playMp3Mild(src) {
mp3URL = getMediaURL(src);
stopAudio();
if(media === null){
media = new Media(mp3URL , null, mediaError);
}
media.setVolume(0.1);
media.play();
}
function stopAudio() {
if (media) {
media.stop();
}
clearInterval(mediaTimer);
media = null;
mediaTimer = null;
}