2011-08-10 89 views
8

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

HTML5音频元素是否支持REPLAY?以及如何?

回答

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

3

上述建议并没有为我或者不适用的工作。当我的代码需要这样做时,我需要重播声音。

下面的代码工作(至少铬):

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

换句话说

,重新设置src属性,然后播放()做的工作

+1

这是行得通的,但每次都会对声音库发出新的请求。 – valkirilov

+0

@valkirilov但它适用于https://code.google.com/p/chromium/issues/detail?id=121765 – user7610

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

0

不使用node.load()这样的方式,对于慢速设备太慢。

要停止,您应该只使用:

node.currentTime = 0 

要重播,你可以这样做:

node.currentTime = 0 
node.play()