2012-06-14 19 views
14

Odtwarzacz wideo ładuje się prawidłowo. Mój faktyczny problem polega na tym, że odświeżam niektóre części mojej strony za pomocą AJAX, a te części zawierają odtwarzacz wideo, odtwarzacz HTML5 ładuje się dobrze, ale nie część Video.js, która je dostosowuje.Inicjowanie odtwarzacza Video.js na załadowanej części ajaxowej strony

Plik video.js został załadowany w nagłówku strony. Przeczytałem dokument i nie mogę znaleźć sposobu na zainicjowanie odtwarzacza wideo na stronie, która została już załadowana. Czy nie istnieje funkcja, którą można wywołać, gdy moja część strony zawierająca wideo zostanie załadowana, aby odtwarzacz wideo ładował się poprawnie z Video.js?

Myślę, że plik video.js robi to automatycznie tylko po wczytaniu strony.

Dzięki za cenną pomoc!

Odpowiedz

17

Tak, zgodnie z docs można zrobić:

videojs("example_video_1", {}, function(){ 
    // Player (this) is initialized and ready. 
}); 

To specjalnie przeznaczone do używania z zawartością dynamiczną :)

Źródło: http://docs.videojs.com/docs/guides/setup.html (na dole)

+1

To nie praca, dziękuję! Miałem inny problem, ale odkryłem, że nadawałem ten sam identyfikator wszystkim moim filmom. –

17

miałem taki sam problem. Mój scenariusz:

Ładowanie thru AJAX kod HTML z tagu wideo, działa za pierwszym razem, ale kiedy reaload zawartości z AJAX (nie odświeżania strony) to nie działa.

To, co zrobiłem, to przełączyć się na znalezienie wideo w klasie, ponieważ ID zmienia się w wideojak.

Więc to jest moje wezwanie teraz:

videojs(document.getElementsByClassName("video-js")[0], {}, function(){ 
      // Player (this) is initialized and ready. 
}); 

Nadzieja to pomaga kogoś z tym samym problemem, gdzie Bruno rozwiązanie nie pracował.

+1

Dzięki za udostępnienie! to rozwiązanie jest właściwe dla mojej sprawy. – leticia

+0

Bravo! Tankuj tak bardzo. To rozwiązanie jest poprawne w przypadku problemów z "odświeżaniem". –

+1

Dziękuję bardzo. To zadziałało, zaakceptowana odpowiedź nie. Zmarnował pół dnia, próbując to wymyślić. –

1

Zrobiłem to w pętli

var massVideo = $('.video-js'); 
for(var i = 0; i < massVideo.length; i++){ 
    videojs(massVideo[i]).ready(function(){}); 
} 
Powiązane problemy