我有一个按钮,按下它时应播放一个短音。它在第一次按下并播放声音时起作用。下次和所有其他时间它都不起作用(直到我重新加载页面,然后它再次工作)。我的代码如下:
我尝试添加audio.stop();在audio.play()之前;希望它能解决它,但它使它根本不起作用。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>HTML5</title>
</head>
<body>
<audio>
<source src="buzzer.mp3" type="audio/mpeg">
</audio>
<input type="submit" id="buttonPlaySound" value="Play Sound">
<script>
var audio = document.getElementsByTagName("audio")[0];
buttonPlaySound.onclick = function () {
audio.play();
};
</script>
</body>
</html>
答案 0 :(得分:1)
一个不同的解决方案,并且由于某些代理从远程重新加载文件而不太容易出现效率问题,方法是在调用audio.currentTime = 0
之前调用audio.play()
在你的例子中,这变为:
buttonPlaySound.onclick = function () {
audio.currentTime = 0;
audio.play();
};
修改强>:
在chrome currentTime
上最初似乎是只读的。所以这不行。有一个解决方法:
如果您手动设置音频对象上的src
(即使是与audio.src = audio.src
中相同的值){},} currentTime
也可设置,上述解决方案将按预期工作
答案 1 :(得分:0)
这是因为HTML5音频播放一次且状态正在播放,因此无法播放。
你可以试试这个:
var audio = document.getElementsByTagName("audio")[0];
var played = false;
buttonPlaySound.onclick = function () {
if (played) {
audio.pause();
}
audio.play();
played = true;
};
答案 2 :(得分:0)
你应该试试这个......
<input type="submit" id="buttonPlaySound" value="Play Sound" onclick ="Play()">
<input type="submit" id="buttonPlaySound" value="Play Sound" onclick ="Pause()">
<script>
var audio = document.getElementsByTagName("audio")[0];
var played = false;
function play()
{
audio.play();
}
function pause()
{
if(played)
{
audio.pause();
}
audio.play();
played = true;
};
</script>
答案 3 :(得分:0)
添加audio.load();在audio.play()之前;为我修好了。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>HTML5</title>
</head>
<body>
<audio>
<source src="buzzer.mp3" type="audio/mpeg">
</audio>
<input type="submit" id="buttonPlaySound" value="Play Sound">
<script>
var audio = document.getElementsByTagName("audio")[0];
buttonPlaySound.onclick = function () {
audio.load();
audio.play();
};
</script>
</body>
</html>