2012-06-14 17 views
14

El reproductor de video en realidad carga bien. Mi problema real es cuando renuevo algunas partes de mi página con AJAX y esas partes contienen un reproductor de video, el reproductor HTML5 carga bien, pero no la parte Video.js que lo personaliza.Inicializa un reproductor de Video.js en una parte cargada de ajax de la página

El archivo video.js se carga en el encabezado de la página. He leído el documento y no encuentro cómo inicializar un reproductor de video en una página que ya se ha cargado. ¿No hay un tipo de función de myPlayer.initialize() a la que puedo llamar cuando mi parte de la página que contiene el video se carga para que el reproductor de video se cargue correctamente con Video.js?

Creo que el archivo video.js lo hace automáticamente solo en la carga de la página.

Gracias por su valiosa ayuda!

Respuesta

17

Sí, de acuerdo con la documentación que puede hacer:

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

Es específicamente para ser utilizado con contenido dinámico :)

Fuente: http://docs.videojs.com/docs/guides/setup.html (en la parte inferior)

+1

que hace el trabajo, gracias! Tuve otro problema, pero descubrí que estaba dando la misma identificación a todos mis videos. –

17

tuve la el mismo problema. Mi escenario:

Cargando a través de ajax un código html con la etiqueta de video, funciona la primera vez, pero cuando realizo el contenido con ajax (no refrescando la página) no funciona.

Lo que hice fue cambiar para encontrar el video a través de la clase, ya que la identificación se cambia por videojs.

Así que esta es mi llamada ahora:

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

Espero que esto ayude a alguien con el mismo problema en el que Bruno solución no funcionó.

+1

¡Gracias por compartir! esta solución es la correcta para mi caso. – leticia

+0

¡Bravo! Tanque te mucho. Esta solución es correcta para problemas de "actualización". –

+1

Muchas gracias. Esto funcionó, la respuesta aceptada no. Perdió medio día tratando de resolver esto. –

1

lo hice en un bucle

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