Cordova Media Plugin 多音频不起作用
Cordova Media Plugin multiple audio dosent work
我是 cordova 的新手,我厌倦了寻找解决方案,我的应用程序中有 20 个声音,当我 运行 它的应用程序 运行 首先单击仅音频,然后 ignore/reject 另一个声音
代码:
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)
它的工作,但现在我有另一个问题,所有音频同时工作。
很抱歉我的英语不好我相信社区会更好
您可能想先尝试停止旧媒体,因为您覆盖了媒体变量而没有停止旧媒体。然后也将旧媒体值设置为空,这样您的 if(media === null) 语句将 return 为真。 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;
}
我是 cordova 的新手,我厌倦了寻找解决方案,我的应用程序中有 20 个声音,当我 运行 它的应用程序 运行 首先单击仅音频,然后 ignore/reject 另一个声音 代码:
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)
它的工作,但现在我有另一个问题,所有音频同时工作。
很抱歉我的英语不好我相信社区会更好
您可能想先尝试停止旧媒体,因为您覆盖了媒体变量而没有停止旧媒体。然后也将旧媒体值设置为空,这样您的 if(media === null) 语句将 return 为真。 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;
}