Estoy tratando de cambiar las fuentes de video a través de JS. Eso funciona principalmente.Mediaelement.js: ¿cómo cambio la imagen del póster?
var basename = "video/whatever";
$("#myvideo")[0].setSrc([
{type: "video/mp4", src: basename + ".mp4"},
{type: "video/webm", src: basename + ".webm"},
{type: "video/ogg", src: basename + ".ogv"}
]);
Así primer problema: cuando cambio las fuentes del botón de pausa muestra en lugar de juego y el botón grande juego de superposición no se muestra, a pesar de que está en pausa. He intentado enviar varias combinaciones de stop() y pausa() y setCurrentTime (0) antes y después de la llamada a setSrc pero sin suerte.
Problema más importante: no he encontrado una manera de cambiar la imagen de póster del video. Esperaba ver un método en la API para cambiarlo, ya que quiero que también se actualice para los retrocesos de Flash/Silverlight. Intenté simplemente cambiar el atributo poster en el elemento video, pero parece que no lo hace.
¿Es necesario el aplazamiento 'setTimeout' o simplemente está siendo" amable "con el navegador? (Y has dicho 'border: 0;' dos veces.) Esto parece ligero, debería funcionar. Cuando escribí la pregunta, creo que había asumido que la imagen del póster sería parte de Flash/Silverlight (cuando el video HTML no está disponible) y que reemplazar el HTML no sería útil. Pero ahora que lo pienso más parece natural que sea un elemento HTML y no Flash en absoluto. ¿Puedes confirmar eso? (El proyecto que necesitaba esto ya pasó). – tremby
Gracias, he editado para eliminar el 'border: 0;' duplicado. Encontré que sin 'setTimeout' el método de pausa no tendría tiempo para ejecutar y renderizar completamente antes de que se cambiara la fuente. Al tener el 'setTimeout' todo dentro de él se agregará a la cola de ejecución del navegador después de la tarea de renderizado/repintado, por lo que el botón de reproducción grande debería mostrarse correctamente. –