Cordova Media Plugin работает несколько аудио до - PullRequest
0 голосов
/ 06 июля 2018

Я новичок в 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), это работает, но теперь у меня возникла другая проблема, все аудио работают вместе в одно и то же время.извините за мой плохой английский, я верю, что с сообществом будет лучше

1 Ответ

0 голосов
/ 10 июля 2018

Вы можете сначала попытаться остановить старый носитель, потому что вы перезаписываете переменную носителя и не останавливаете старый. Затем также установите для старого значения медиа значение null, чтобы ваш оператор if (media === null) вернул значение true. media.stop () не делает медиа равным нулю. Пожалуйста, попробуйте следующее и скажите нам, сработало ли это для вас.

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