繁体   English   中英

如何在JavaScript中多次获得重复播放功能的声音?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM