HTML5音频按钮 - 第一次按下工作,然后停止工作

时间:2013-02-13 04:32:40

标签: javascript html5 html5-audio

我有一个按钮,按下它时应播放一个短音。它在第一次按下并播放声音时起作用。下次和所有其他时间它都不起作用(直到我重新加载页面,然后它再次工作)。我的代码如下:

我尝试添加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>

4 个答案:

答案 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>