2011-07-28 15 views
5

Estoy intentando buscar e imprimir los atributos de ancho y alto del video con un simple javascript, pero por alguna razón no lo estoy administrando.Ancho y ancho de video HTML5 a través de javascript

Este es el javascript

video = document.getElementsByTagName("video")[1]; 
span1 = document.getElementById("dimensions"); 
span1.innerHTML = video.videoWidth + " x " + video.videoHeight; 

y esto es código HTML 5, que afecta (esta es la segunda etiqueta de vídeo en la estructura html)

<figure> 
<video controls> 
<source src="video.webm" type="video/webm"> 
</video> 
</figure> 
<p> 
Dimensions: <span id="dimensions"></span> 
</p> 

Muchas gracias, soy un principiante así que sé ligero conmigo.

+0

¿Su video funciona bien? –

+0

el video está en formato webm y solo se reproduce en Chrome, por ahora – 3mpetri

Respuesta

11

Su índice, basado en su marcado, no le devolverá el elemento que desea. El índice está basado en cero como listas de nodos son tipo array y empezar a indexar a 0.

var video = document.getElementsByTagName("video")[0]; 

Editar: lo siento, no vi que habías dicho que era la segunda etiqueta de vídeo. En ese caso, no estoy seguro, porque funciona para mí: http://jsfiddle.net/3wCYz/1/

Una cosa que tal vez quiera probar es poner el código que usa para obtener el ancho y la altura dentro de un controlador en su etiqueta de video que escucha el evento loadedmetadata:

video.addEventListener("loadedmetadata", dimensionFunction, false); 

donde dimensionFunction es una función que hace lo que ya se está haciendo para agarrar las dimensiones.

Lo que hace esto es asegurarse de que los metadatos del video se hayan descargado antes de intentar tomarlo.

+0

Agregué un oyente, también intenté con 1 segundo de retraso, solo funciona bien en Chrome, probablemente porque otros navegadores aún no son compatibles con webm. Muestra 0 x 0 en Firefox con retraso de tiempo, y nada con el oyente. Pero bueno, todo bien en Chrome: D gracias – 3mpetri

+0

@ 3mpetri En ese caso, debes mover tu script debajo del código html. O haz que tu script se ejecute dentro del evento 'onload'. Recomiendo encarecidamente no utilizar la demora. –

+1

Estoy de acuerdo en ponerlo dentro del evento de carga. Para tenerlo disponible para jugar en otros navegadores, solo codifíquelo para mp4 y ogv y habrá cubierto todos los navegadores compatibles con html5. Es muy fácil hacer la codificación con una variedad de herramientas gratuitas. Utilizo Miro Converter: http://www.mirovideoconverter.com/ – kinakuta

Cuestiones relacionadas