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