#javascript #html #button #audio
#язык JavaScript #HTML #кнопка #Аудио
Вопрос:
Я создал веб-сайт в неокитайсе, который воспроизводит аудиофайл всякий раз, когда вы нажимаете кнопку «СГЕНЕРИРОВАТЬ ЗВУК».
Самое забавное, что он воспроизводит один и тот же звук всякий раз, когда я нажимаю его снова. Единственный способ получить новое аудио-это перезагрузить саму страницу. Есть ли способ изменить аудиофайл без необходимости перезагрузки страницы?
вот моя кнопка:
lt;a href="#" onclick="test.play()"gt; GENERATE MUSIC lt;/agt;
и вот как я заставляю его воспроизводить случайные аудиозаписи из массива:
const audioList = [ "audio1.mp3", "audio2.mp3", "audio3.mp3", "audio4.mp3"]; var test = new Audio(); var audioNum = Math.floor(Math.random() * audioList.length); test.src = audioList[audioNum];
Ответ №1:
Попробуйте это:
const audioList = [ "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3", "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3", "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-3.mp3", "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-4.mp3" ]; const audio = new Audio() function generateMusic() { const audioNum = Math.floor(Math.random() * audioList.length); audio.src = audioList[audioNum]; audio.load() audio.play() }
lt;a href="#" onclick="generateMusic()"gt; GENERATE MUSIC lt;/agt;
Что я изменил в вашем коде:
- Создайте функцию, которая будет выбирать новую песню каждый раз, когда вы нажимаете кнопку.
- Установите эту песню как
.src
и.play()
она. - Метод load() повторно загружает аудиоэлемент.