![](/img/trans.png)
[英]How to play a sound clip once, even if the code should call it more than once?
[英]How to get repeat function play sound more than once in JavaScript?
我很难使下面的脚本按预期工作,即像函数(repeatR)一样反复播放声音。 重复次数的输入可以来自用户(按钮)。
var timer, start; function repeatR(callback, interval, repeats, immediate) { var timer, trigger; trigger = function() { callback(); --repeats || clearInterval(timer); }; interval = interval <= 0 ? 1000 : interval; // defaultní repeats = parseInt(repeats, 10) || 0; // loop timer = setInterval(trigger, interval); if ( !! immediate) { trigger(); } return timer; } window.run = function () { var args = Array.prototype.slice.call(arguments, 0); if( timer ) { clearInterval(timer); } start = (new Date).getTime(); document.getElementById("test").play(); }
<body> <div> <input type="button" value="Once after 1 sec" onclick="run(1000, 1)"> <input type="button" value="Once immediately" onclick="run(0, 1, true)"> <input type="button" value="5 times, 0.5s interval" onclick="run(500, 5)"> <input type="button" value="5 times, 0.5s interval, immediate start" onclick="run(500, 5, true)"> <input type="button" value="Forever, 1s interval" onclick="run(1000)"> <audio id="test" src="test.wav"</audio> </div> </body>
此时,代码仅重复声音一次。
我很乐意为此提供一些建议/解决方案。
谢谢。
您可以使用audio loop属性,即audioObject.loop = true|false
<body>
<audio id="myAudio" controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio><br>
<button onclick="enableLoop()" type="button">Enable loop</button>
<button onclick="disableLoop()" type="button">Disable loop</button>
<button onclick="checkLoop()" type="button">Check loop status</button>
<script>
var x = document.getElementById("myAudio");
function enableLoop() {
x.loop = true;
x.load();
}
function disableLoop() {
x.loop = false;
x.load();
}
function checkLoop() {
alert(x.loop);
}
</script>
</body>
类似于上面的代码,以供参考, 请参阅W3 Schools Audio Loop
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.