Estoy tratando de obtener las dimensiones de un video que estoy superponiendo en una página con JavaScript, sin embargo, está devolviendo las dimensiones de la imagen del póster en lugar del video real, ya que parece que se está calculando antes de que se cargue el video.
javascript
jquery
html5-video
Elliot
fuente
fuente
Respuestas:
Especificación: https://html.spec.whatwg.org/multipage/embedded-content.html#the-video-element
fuente
Cabe señalar que la solución actualmente aceptada por Sime Vidas no funciona en los navegadores modernos, ya que las propiedades videoWidth y videoHeight no se establecen hasta después de que se activa el evento "loadedmetadata ".
Si consulta esas propiedades lo suficientemente lejos después de renderizar el elemento VIDEO, a veces puede funcionar, pero en la mayoría de los casos esto devolverá valores de 0 para ambas propiedades.
Para garantizar que está obteniendo los valores de propiedad correctos, debe hacer algo como:
NOTA: No me molesté en tener en cuenta las versiones anteriores a la 9 de Internet Explorer que usan attachEvent en lugar de addEventListener, ya que las versiones anteriores a la 9 de ese navegador no admiten video HTML5, de todos modos.
fuente
loadedmetadata
dispara. Lo acabo de ver en Chromium 69. Escuchandoloadeddata
es una apuesta más segura.Función lista para usar
Aquí hay una función lista para usar que devuelve las dimensiones de un video de forma asincrónica, sin cambiar nada en el documento .
Aquí está el video utilizado para el fragmento si desea verlo: Big Buck Bunny
fuente
Escuche el
loadedmetadata
evento que se envía cuando el agente de usuario acaba de determinar la duración y las dimensiones del recurso de mediosSección 4.7.10.16 Resumen de eventos
https://www.w3.org/TR/html5/semantics-embedded-content.html#eventdef-media-loadedmetadata
fuente
Así es como se puede hacer en Vue:
fuente
En Vuejs utilizo el siguiente código en la etiqueta montada.
fuente