Есть рабочий код: Код (Text): <audio class="main_player" src="sounds/1.mp3" controls></audio> <script> let mainPlayer = document.querySelector('.main_player'), currentSound = 1, // текущий проигрываемый трек counterSounds = 6; // к-во треков для проигрывания mainPlayer.addEventListener("ended", ()=>{ if(currentSound > counterSounds){ currentSound = 1; } mainPlayer.src = `sounds/${currentSound}.mp3`; mainPlayer.play(); currentSound++; }); </script> Всё прекрасно работает. Нужно, чтобы воспроизведение треков происходило в случайном порядке. Как сделать?
Заполнить массив значениями от 1 до counterSounds, перемешать значения, перебрать их и подставить в `sounds/${currentSound}.mp3`. Как на JS перемешивать значения массива -- Гугл в помощь.
Так правильно? Код (Text): let arr = [1, 2, 3, 4, 5, 6]; mainPlayer.src = `sounds/${arr.currentSound}.mp3`; mainPlayer.play(); currentSound++;
Так, перемешиваю: Код (Text): let arr = [1, 2, 3, 4, 5, 6]; arr = list.sort(() => Math.random() - 0.5); Так? Код (Text): mainPlayer.src = `sounds/${arr[currentSound]}.mp3`; mainPlayer.play(); currentSound++;
Я в js не разбираюсь, просто решил попробовать. Код (Text): <audio class="main_player" src="sounds/1.mp3" controls></audio> <script> let mainPlayer = document.querySelector('.main_player'), counterSounds = 6; // к-во треков для проигрывания mainPlayer.addEventListener("ended", ()=>{ currentSound = ( Math.floor(Math.random() * Math.floor(counterSounds)) )+1; mainPlayer.src = `sounds/${currentSound}.mp3`; mainPlayer.play(); }); </script>
Понедельник день тяжелый. Код (Text): <audio class="main_player" src="sounds/1.mp3" controls></audio> <script> let mainPlayer = document.querySelector('.main_player'); let counterSounds = [1, 2, 3, 4, 5, 6]; counterSounds = counterSounds.sort(() => Math.random() - 0.5); let i = 0; mainPlayer.addEventListener("ended", ()=>{ mainPlayer.src = `sounds/${counterSounds[i++]}.mp3`; i = i % counterSounds.length; mainPlayer.play(); }); </script>