如何播放每个 X 声音的音频?在javascript中
Posted
技术标签:
【中文标题】如何播放每个 X 声音的音频?在javascript中【英文标题】:How to play audio every X sound? in javascript 【发布时间】:2014-10-11 20:04:38 【问题描述】:我尝试这样做,但它不起作用
<script>
document.getElementById('player').play();
x = document.one.numberO.value;
i = 0;
x2 = document.one.intervalO.value;
function out()
if ((document.one.numberO.value == "")||(document.one.numberO.value < 1)||(document.one.intervalO.value < 5)||(document.one.intervalO.value == ""))
alert("error");
else
var intervalID = setInterval(start, x2*1000);
i++;
if (i == x)
clearInterval(intervalID);
function start()
document.getElementById('player').play();
还有 html:
<form name="one">
Number <br />
<input type="text" name="numberO"><br />
<br />
Interval <br />
<input type="text" name="intervalO">
</form>
<audio id="player" src="too.mp3"></audio>
<div>
<button onclick="out();">Start</button>
<button onclick="document.getElementById('player').pause()">||</button>
<br>
<br>
<button onclick="document.getElementById('player').volume+=0.1"> +</button>
<button onclick="document.getElementById('player').volume-=0.1"> -</button>
</div>
我需要每 X 秒播放一次声音(我从文本字段中获取值)X2 次(也从文本字段中获取)
【问题讨论】:
你想如果有人在 x 字段中输入 10,那么声音应该运行 10 秒还是每 10 秒后运行一次?? 【参考方案1】:给你 :) 希望对你有帮助。
function out()
x = document.getElementById('a').value;
intrvl = setInterval("sound(x)", x*1000);
i = 0;
function sound(x)
if(x == i)
clearInterval(intrvl);
i++;
document.getElementById('player').play();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<input type="text" id="a">
<input type="button" value="sec" id="s" onclick="out()">
<audio id="player" src="http://www.soundjay.com/button/beep-01a.mp3"></audio>
</body>
</html>
【讨论】:
【参考方案2】:var audioPlayer = document.getElementById("player");
var audioPlayCount = parseInt(document.one.numberO.value);
var audioseconds = parseInt(document.one.intervalO.value);
var start = function()
audioPlayer.play();
;
var out = function()
if(!audioPlayCount || !audioSeconds || audioSeconds < 5 )
alert("error");
return;
for(var i = 0; i < audioPlayCount; i++)
setTimeout(start, 1000 * audioSeconds);
;
我没有测试过这段代码,但你明白了。
【讨论】:
在parseInt
中添加, 10
。而且你的 for 循环对i
也没有任何作用。此外,应使用函数声明而不是函数表达式。以上是关于如何播放每个 X 声音的音频?在javascript中的主要内容,如果未能解决你的问题,请参考以下文章