Si quiero determinar el ancho y el alto de una imagen, puedo hacer lo siguiente:
let image = new Image(); image.src = ...the source ; image.decode(); console.log( image.width, image.height );No es necesario crear un elemento DOM para representar la imagen y luego obtener las dimensiones.
¿Es posible hacer algo similar con un video? ¿Si es así, cómo?
Esto parece hacer lo que quiero:
let video = document.createElement( 'video'); video.setAttribute( "preload", "metadata" ); video.src = // ...the data source video.addEventListener( 'loadeddata', function() { console.log( this.videoWidth, this.videoHeight ); });Creo el elemento de video, pero no lo inserto en el DOM. Creo que configurar el atributo de precarga no requiere que se cargue todo el archivo de video, pero no estoy seguro de eso.
Los datos se cargan y se activa el evento de datos cargados, registrando el ancho y el alto del video.
Me interesaría saber qué opinan otras personas sobre esta solución.