0

我有一个 10 秒长的音频文件,我想在用户单击按钮时播放它。但是,当用户按住按钮时,我希望我的音频在 5 秒到 7.5 秒的循环中播放,并且onmouseup我需要我的音频播放到最后(10 秒)。是否可以在没有任何外部库的情况下做到这一点?

4

1 回答 1

0

所以我创建了以下JS Fiddle来循环 5-7.5 onmousedown。它的工作原理是跟踪currentTime属性并检查玩家是否在界内或界外,如果在界外则重置。

<button onclick="playSound()">play</button>
<button onmousedown="fivetoseven()">play 5-7</button>
<button onclick="stopSound()">stop</button>
<audio controls id="mp3" preload="auto" src="https://upload.wikimedia.org/wikipedia/commons/4/40/Toreador_song_cleaned.ogg"></audio>


<script>
  var mp3 = document.getElementById('mp3');

  function playSound() {
    mp3.play();
  }

  function fivetoseven() {
    if (mp3.currentTime < 5.0 || mp3.currentTime > 7.5) {
      mp3.currentTime = 5;
    }
    setTimeout(fivetoseven, 500)
  }


  function stopSound() {
    mp3.pause();
  }

</script>
于 2018-08-18T19:13:22.787 回答