@velllum

Как можно воспроизвести весь список .mp3 файлов объектом Audio()?

День добрый, уважаемые знатоки!

Есть код на JavaScript, который должен воспроизводить все файлы по очереди, по нажатию на кнопку и при обратном нажатии ставить на паузу.

var tagAudio = document.getElementsByTagName("audio"); // получаем все ссылки
var array = []

for (let a of tagAudio) {
    array.push(a.getAttribute('src')) // наполняем масив ссылками
}

var el = document.getElementById('player');
var playing = false; // текущее состояние плеера

var player = new Audio();


for (let i = 0; i < array.length; i++) {
    player.src = array[i]
    player.preload = "auto";

    player.addEventListener('ended', function(){ // слушаем окончание трека
        console.log("до", playing)
        playing = false;
        console.log("после", playing)
    });
    
}

el.addEventListener('click', function(){ // слушаем клик по кнопке

    player.preload = "auto";
    
    if(playing){
        player.pause();
    } else {
        player.play();
    }

    playing = !playing;
    console.log("playing = !playing;", playing)

});


<button id="player" type="button">
          Воспроизвести
    </button>


Скрипт работает нормально, если мы указываем index ссылки вручную. Если запускать его через цикл то все работает не так как надо, а конкретно воспроизводится только последний файл .mp3, все от стальные ссылки он пропускает мимо.

Было бы не плохо реализовать подмену слова "Воспроизвести" на "Остановить"

Буду благодарен любой помощи.
Заранее спасибо!
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы