Бесконечное проигрывание аудио

Есть такой аудио скрипт при нажатии на который воспроизводиться аудио но когда я добавляю второй аудио файл он проигрывается бесконечно как это исправить?

var tracks = ['audio/keysys.mp3', 'audio/key.mp3'];
var current = 0;
player.src = tracks[0];
player.onended = function() {
  current++;
  if (current >= tracks.length) current = 0;
  player.src = tracks[current];
  player.play();
}


Ответы (1 шт):

Автор решения: Igor

Все клипы по кругу:

function playOnClick() {
  let tracks = [
    'https://www.kozco.com/tech/piano2.wav',
    'https://www.kozco.com/tech/organfinale.wav'
  ];
  let current = -1;
  let p = new Audio();
  (p.onended = function() {
    current = ++current % tracks.length;
    console.log(current, tracks[current]);
    p.src = tracks[current];
    p.play();
  })();
}
<button onclick="playOnClick()">Play</button>

Все клипы один раз:

function playOnClick() {
  let tracks = [
    'https://www.kozco.com/tech/piano2.wav',
    'https://www.kozco.com/tech/organfinale.wav'
  ];
  let current = -1;
  let p = new Audio();
  (p.onended = function() {
    if (++current < tracks.length) {
      p.src = tracks[current];
      p.play();
    }
    console.log(current, tracks[current]);
  })();
}
<button onclick="playOnClick()">Play</button>

→ Ссылка