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;
}