#javascript #audio #avaudioplayer
#javascript #Аудио #avaudioplayer
Вопрос:
Я пытаюсь создать игру, похожую на «cookie clicker», в которой мне нужно воспроизводить звук каждый раз, когда нажимается кликер. Моя проблема в том, что новый звук и звук.воспроизведение выполняется в двух отдельных функциях (с глобальными переменными), что вызывает задержку от щелчка до звука.
Есть ли какой-нибудь способ избавиться от задержки, не перемещая их в ту же функцию?
Здесь определяется аудио:
[].forEach.call(document.getElementById('skins').children, function(e) {
e.onclick = function () {
klikketskin = this.id;
clicklyd = new Audio(`Medier/Lyd/Clicker/${klikketskin}.mp3`); }
Вот где это воспроизводится (позже в сценарии):
function clickevent() {
clicklyd.play(); }
Как сейчас (включить звук):
https://imgur.com/a/2vf4NWG
Что я хочу (включить звук): https://imgur.com/a/x4wYFq2
Танковый ты! : D
Ответ №1:
Вы должны сбросить значение currentTime
свойства 0
, которое позволит воспроизводить звук с самого начала, прежде чем вызывать play()
снова.
function clickevent() {
clicklyd.currentTime = 0;
clicklyd.play();
}
Однако это отключит предыдущий звук, если он еще не завершен.