2012-04-30 13 views
63

Sto cercando di posizionare un video in una pagina HTML5 che inizierà a essere caricato a caricamento di pagina e, una volta completato, tornerà all'inizio senza interruzioni. Il video dovrebbe anche NON avere alcun controllo associato ad esso, ed essere compatibile con tutti i browser 'moderni', o avere l'opzione di un polyfill.Riproduzione a ciclo continuo del video in caricamento in HTML5

In precedenza avrei eseguito questa operazione tramite Flash e FLVPlayback, ma preferirei evitare lo Flash nella sfera HTML5. Sto pensando di poter usare javascript setTimeout per creare un loop uniforme, ma cosa dovrei usare per incorporare il video stesso? C'è qualcosa là fuori che trasmetterà in streaming il video come farebbe FLVPlayback?

risposta

111

L'attributo ciclo dovrebbe farlo:

<video width="320" height="240" autoplay loop> 
    <source src="movie.mp4" type="video/mp4" /> 
    <source src="movie.ogg" type="video/ogg" /> 
    Your browser does not support the video tag. 
</video> 

Qualora vi siano problemi con l'attributo loop (come abbiamo avuto in passato), ascoltare l'evento videoEnd e chiamare il metodo play() quando incendi.

Nota 1: Non sono sicuro del comportamento sull'iPad/iPhone di Apple, perché hanno alcune restrizioni contro autoplay.

Nota 2: loop="true" e autoplay="autoplay" sono deprecati

+0

Grazie. Lo proverò. – stefmikhail

+1

Davvero un buon consiglio, signore. Ho finito con l'uso di 'javascript' per ascoltare l'evento' videoEnd', e ricominciando dall'inizio come da quello che posso dire, l'attributo 'loop' non è supportato da tutti i browser. Per i dispositivi iOS, non supportano 'autoplay' in alcun modo forma o modulo da iOS 5, quindi ho appena usato un'immagine di fallback per dispositivi mobili. Grazie ancora. – stefmikhail

+8

utilizzando

0

È possibile farlo due modi seguenti:

1) Utilizzando loop attributo elemento video (di cui la prima risposta):

2) ed è possibile utilizzare l'evento multimediale ended:

window.addEventListener('load', function(){ 
    var newVideo = document.getElementById('videoElementId'); 
    newVideo.addEventListener('ended', function() { 
     this.currentTime = 0; 
     this.play(); 
    }, false); 

    newVideo.play(); 

}); 
Problemi correlati