2012-01-24 19 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> 

[OK]を、それは、Firefox上では動作しませんが、トリックがあります。この例はSafariとChromeで動作しますが、それは問題ではありません。問題は、jQueryのload()メソッドを使用して特定のdivに同じコードをロードすることです。$( '#mydiv')。load(url、function(){..});

そのHTMLコードがロードされると、divが表示され、オーディオファイルが適切に聞こえるようになります(自動再生)...しかしループしません!上記の小さなhtmlの例ではループしますが、AJAX呼び出しから来る同じコードはまったくループしません。そして、私はそれがDOMにあることを知っています。何か不足していますか?

答えて

1

onendedイベントが発生した場合、loop属性を削除し、新しい<audio>要素のcurrentTime属性をリセットすることもできます。オーディオが自動的に彼は終わりをrechesたびに再起動します(この動作はほとんどネイティブループのと同じである)、このように

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

:簡単なjQueryの例は次のようにsmthgすることができます。

+0

私はこれを試しました。それはFirefox上でループが動作する方法ですが、動作しません。私はこれを試しました: '$( 'audio')on( 'ended'、function(){ alert(" end! "); this.currentTime = 0; this.play(); } ); ' アラートは表示されますが、play()があるかどうかにかかわらず、ループしません。 – Notnasiul

関連する問題