2011-08-10 90 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()