HTML音频元素如何重放?

时间:2011-08-10 03:11:32

标签: javascript html5

我设置了一个HTML5页面,其中包含一个节点。 该页面将播放音乐(mp3格式),但它只是播放声音结束,我使用javascript来控制音频元素,即便如此,我也无法重播它,只能停止。

HTML5音频元素是否支持REPLAY?怎么样?

8 个答案:

答案 0 :(得分:19)

请阅读本文

http://www.position-absolute.com/articles/introduction-to-the-html5-audio-tag-javascript-manipulation/

和重播事件

您可以在重播上点击

设置选项
audioElement.currentTime=0;
audioElement.play();

答案 1 :(得分:3)

上述建议对我不起作用或不适用。当我的代码需要时,我需要重放声音。

以下代码有效(至少是chrome):

audioElement.setAttribute('src',audioSrc);  audioElement.play();

换句话说,再次设置src属性,然后play()完成了工作

答案 2 :(得分:2)

html5音频元素有一个循环属性,将其设置为loop = loop

http://www.w3schools.com/html5/html5_audio.asp

答案 3 :(得分:2)

如果托管视频的服务器不支持在客户端上搜索(HTTP RangeRequest),则命令

audioElement.currentTime=0;
来自@ JapanPro的答案在Chromium中被默默地忽略了。此行为将填充为crbug #121765

有一个handy guide on MDN how to configure your server可以玩得很好。但如果你做不到,我就成功了

audioElement.load();

毫不奇怪地重新加载音频源并寻求起始作为副作用。不太好,但它很直观,而且很有效。

来源:http://www.whatwg.org/specs/web-apps/current-work/#loading-the-media-resource

答案 4 :(得分:0)

你可以试试这个:

<audio id="audiotag1" src="audio/flute_c_long_01.wav" preload="auto"></audio>
<a href="javascript:play_single_sound();">Play 5-sec sound on single channel</a>
<script type="text/javascript">
    function play_single_sound() {
        document.getElementById('audiotag1').play();
    }
</script>

参考:http://www.storiesinflight.com/html5/audio.html

答案 5 :(得分:0)

不要使用node.load()这对慢速设备来说太慢了。

要停止,您应该使用:

node.currentTime = 0

要重播,你可以这样做:

node.currentTime = 0
node.play()

答案 6 :(得分:0)

使用:

  audio.pause() // important!!!
  audio.currentTime = 0
  audio.play()

答案 7 :(得分:0)

在HTML5中,您只需设置audioElement.loop='true';