2012-01-24 11 views
0

加載DIV內容播放HTML5中的一個循環的音頻時HTML5音頻不循環是如此簡單:與AJAX

<html> 
<head></head> 
<body> 
    <audio controls autoplay loop> 
     <source src="../media/audio/timer.ogg" type="audio/ogg" /> 
     <source src="../media/audio/timer.mp3" type="audio/mpeg" /> 
    </audio> 
</body> 
</html> 

好吧,這不會對Firefox的工作,但也有技巧。這個例子適用於Safari和Chrome,但這不是問題。問題是我使用jQuery的load()方法在某個div上加載相同的代碼:$('#mydiv')。load(url,function(){..});

當加載這段HTML代碼時,會顯示div並正確聽到音頻文件(自動播放)...但它不會循環!雖然它在上面看到的小html示例上循環,但來自AJAX調用的相同代碼根本不會循環。我知道它在DOM中。我錯過了什麼嗎?

回答

1

的另一種方法是去除loop屬性和當onended事件發生時重置新<audio>元件的currentTime屬性。在這樣的聲音會自動重啓每次他reches結束時間

/* make ajax call and append audio element */ 
$('audio').on('ended', function() { 
    this.currentTime = 0; 
}); 

(而這種行爲幾乎是相同的本地環路):一個簡單的jQuery例子可以smthg等。

+0

我試過了,因爲這是循環如何在Firefox上工作,但它不起作用。我已經試過這樣: '$( '音頻')上( '結束',函數(){ 警報( 「結束!」); this.currentTime = 0; this.play();} 。 );' 顯示警報,但有或沒有play()它不會循環。 – Notnasiul