2012-04-30 13 views
63

Czekam na umieszczenie wideo na stronie HTML5, która rozpocznie odtwarzanie na stronie ładowanie, a po zakończeniu pętla powrót do początku bez przerwy. Film wideo powinien również mieć NOT mieć jakiekolwiek kontrolki z nim związane i być kompatybilny ze wszystkimi "nowoczesnymi" przeglądarkami lub mieć opcję polyfill.Odtwarzam nieskończenie zapętlone wideo w HTML5

Poprzednio robiłbym to przez Flash i FLVPlayback, ale wolałbym omijać Flash w sferze HTML5. Myślę, że mógłbym użyć javascriptowej wersji setTimeout, aby stworzyć gładką pętlę, ale co powinienem użyć do osadzenia samego filmu? Czy jest coś, co będzie transmitować wideo w taki sposób, jak to robiłby FLVPlayback?

Odpowiedz

111

pętla atrybut powinien to zrobić:

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

Jeżeli masz problem z atrybutu pętli (jak mieliśmy w przeszłości), słuchać przypadku videoEnd i wywołać metodę play() kiedy go pożary.

Uwaga1: Nie jestem pewien co do zachowania na iPadzie/iPhonie firmy Apple, ponieważ mają pewne ograniczenia przeciwko autoplay.

Uwaga2: loop="true" i autoplay="autoplay" są przestarzałe

+0

Dzięki. Dam temu szansę. – stefmikhail

+1

Rzeczywiście dobra rada sir. Skończyło się na używaniu 'javascript' do nasłuchiwania zdarzenia' videoEnd' i powracania do początku, ponieważ z tego co wiem, atrybut 'loop' nie jest obsługiwany przez wszystkie przeglądarki. W przypadku urządzeń z systemem iOS nie obsługują one 'autoplay'u w żaden sposób w kształcie ani formie przez iOS 5, więc użyłem obrazu rezerwowego dla urządzeń mobilnych. Dzięki jeszcze raz. – stefmikhail

+8

używanie

0

Można to dwa następujące sposoby zrobić:

1) Korzystanie loop atrybut w elemencie wideo (wspomniane w pierwszej odpowiedzi):

2) i można użyć zdarzenia multimedialnego ended:

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

    newVideo.play(); 

});