Завершение события onmousedown (onmouseup?)

Я создал кнопку, используя событие onmousedown, которое зацикливает звуковую дорожку при нажатии. Я пытаюсь завершить звуковой цикл при нажатии той же кнопки. Я пробовал событие onmouseup, но не повезло, есть идеи? (Я новичок в JavaScript)

<script> var one = new Audio(); one.src = "files/audio/one.wav"; one.loop = true; </script>

<img class="item" src="files/button.png" onmousedown="one.play()" onmouseup="one.stop()"/>

person Nathan Wilson    schedule 31.05.2017    source источник


Ответы (1)


Попробуйте использовать var, чтобы отслеживать ваши клики и слушать только событие click:

JS

var one = new Audio(); 
one.src = "files/audio/one.wav"; 
one.loop = true;
var isPlaying = false;

function manage(){
  if(isPlaying){
    one.pause();
    one.currentTime = 0;
    isPlaying = false;
  }
  else{
    one.play();
    isPlaying = true;
  }
}

HTML

<img class="item" src="files/button.png" onclick="manage()"/>
person Zenoo    schedule 31.05.2017
comment
Отлично работает, спасибо! Теперь я просто пытаюсь понять, как перезапустить аудиофайл при повторном нажатии, а не с предыдущей точки. Я пробовал audio.currentTime = 0, но это не работает, возможно, я использую его неправильно. - person Nathan Wilson; 31.05.2017
comment
Вам нужно использовать one.currentTime = 0;. Я отредактировал это в своем ответе. - person Zenoo; 31.05.2017