2011-08-10 16 views
8

Konfiguruję stronę HTML5 zawierającą węzeł. Strona będzie odtwarzać muzykę (format mp3), ale po prostu odtwarza dźwięk do końca, a ja używam javascript do kontrolowania elementu audio, mimo to nie mogę go odtworzyć i tylko STOP.Element HTML audio jak odtwarzać?

Czy element audio HTML5 obsługuje REPLAY? A jak?

Odpowiedz

0

Można spróbować to:

<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> 

Ref: http://www.storiesinflight.com/html5/audio.html

3

sugestie powyżej nie pracował dla mnie lub gdzie nie dotyczy. Musiałem powtórzyć dźwięk, gdy mój kod musiał to zrobić.

Następujący kod działa chrom (przynajmniej):

audioElement.setAttribute ('źródło', audioSrc); audioElement.play();

innymi słowy, znowu ustawienie atrybutu src, a następnie play() spełnił swoje zadanie

+1

To działa, ale za każdym razem wysyła nowe żądanie dźwięku. – valkirilov

+0

@valkirilov Ale działa około https://code.google.com/p/chromium/issues/detail?id=121765 – user7610

2

Jeśli serwer hosting wideo nie obsługuje szukając na kliencie (HTTP RangeRequest), polecenie

audioElement.currentTime=0; 

z odpowiedzi @ JapanPro jest cicho ignorowane w Chromium. To zachowanie jest wypełniane jako crbug #121765.

Istnieje handy guide on MDN how to configure your server, aby grać ładnie. Ale jeśli nie, miałem sukces z robieniem

audioElement.load(); 

który zaskoczeniem przeładowuje źródło dźwięku i stara się na początku jako efekt uboczny. Nieźle, ale jest dość intuicyjny i działa.

źródło: http://www.whatwg.org/specs/web-apps/current-work/#loading-the-media-resource

0

nie używać node.load() jest zbyt powolne dla powolnych urządzeń.

Aby zatrzymać, należy po prostu użyć:

node.currentTime = 0 

Aby odtworzyć można zrobić:

node.currentTime = 0 
node.play() 
Powiązane problemy