2012-04-30 17 views
63

Estoy buscando colocar un video en una página HTML5 que comenzará a reproducirse en la carga de la página, y una vez completado, vuelva al principio sin interrupción. El video también debe tener NO tener controles asociados, y ser compatible con todos los navegadores 'modernos' o tener la opción de un relleno múltiple.Reproducir vídeo de bucle infinito en carga en HTML5

Anteriormente lo habría hecho a través de Flash y FLVPlayback, pero preferiría alejarme de Flash en la esfera HTML5. Estoy pensando que podría usar javascript setTimeout para crear un bucle suave, pero ¿qué debería usar para incrustar el video? ¿Hay algo por ahí que transmita el video de la manera en que lo haría FLVPlayback?

Respuesta

111

El atributo bucle debe hacerlo:

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

En caso de tener un problema con el atributo de bucle (como hemos tenido en el pasado), escuchar el caso videoEnd y llame al método play() cuando incendios.

Nota1: No estoy seguro del comportamiento en el iPad/iPhone de Apple, porque tienen algunas restricciones contra autoplay.

Nota 2: loop="true" y autoplay="autoplay" están en desuso

+0

Gracias. Lo probaré. – stefmikhail

+1

De hecho un buen consejo señor. Terminé usando 'javascript' para escuchar el evento' videoEnd', y volviendo al principio desde lo que puedo decir, el atributo 'loop' no es compatible con todos los navegadores. Para los dispositivos con iOS, no admiten "reproducción automática" de ninguna forma o forma en iOS 5, por lo que acabo de utilizar una imagen alternativa para dispositivos móviles. Gracias de nuevo. – stefmikhail

+8

usando

0

Esto se puede hacer las siguientes dos maneras:

1) Usando loop atributo de elemento de vídeo (mencionado en la primera respuesta):

2) y puede utilizar el evento de medios ended:

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

    newVideo.play(); 

});