Два аудио файла воспроизводятся один за другим - PullRequest
0 голосов
/ 11 января 2020

При нажатии кнопки play два аудиофайла должны начать воспроизводиться один за другим, но в моем случае они начинают воспроизводиться одновременно. Вопрос в том, как заставить их играть по очереди, audio_1, затем audio_2?

   let audio1 = new Audio('audio_1.mp3');
   audio1.play();  

   let audio2 = new Audio('audio_2.mp3');
   audio2.play();  

Ответы [ 3 ]

0 голосов
/ 11 января 2020

используйте обещание.

function play(url) {
 return new Promise(function(resolve, reject) {   // return a promise
     var audio = new Audio();                     // create audio wo/ src
     audio.preload = "auto";                      // intend to play through
     audio.autoplay = true;                       // autoplay when loaded
     audio.onerror = reject;                      // on error, reject
     audio.onended = resolve;                     // when done, resolve

     audio.src = path + url + suffix; // just for example
 });
}

Ссылка этот stackoverflow ответ Если вы хотите дождаться какого-либо действия и выполнить его по завершению предыдущего, используйте обещание

0 голосов
/ 11 января 2020

Вы можете добавить к нему прослушиватель событий:

let audio1 = new Audio('audio_1.mp3');
let audio2 = new Audio('audio_2.mp3');

audio1.addEventListener('ended' => audio2.play());

audio1.play();
0 голосов
/ 11 января 2020

Вот простое решение с javascript onended.

let button = document.querySelector('button');
let audio = new Audio('audio_1.mp3');

function playAudio(){
audio.play();
audio.onended = function() {
    audio.src='audio_2.mp3'
    audio.play();
};
}

button.addEventListener(
'click', 
playAudio
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...