2011-07-28 15 views
5

Próbuję pobrać i wydrukować atrybuty szerokości i wysokości z wideo za pomocą prostego kodu javascript, ale z jakiegoś powodu nie zarządzam.Wysokość i szerokość wideo HTML5 za pośrednictwem javascript

To javascript

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

i to jest kod HTML5, który wpływa (jest to drugi film w strukturze tag html)

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

Dzięki, jestem początkującym więc bądź dla mnie lekki.

+0

Czy Twój film jest dobrze odtwarzany? –

+0

wideo jest w formacie webm i odtwarza się tylko w Chrome, na razie – 3mpetri

Odpowiedz

11

Twój indeks, oparty na twoim znaczniku, nie zwróci Ci żądanego elementu. Indeks jest liczony jako listy węzłów są tablicą, jak i rozpocząć indeksowanie na 0.

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

Edytuj: Niestety, nie widział pan powiedział, że drugi znacznik wideo. W takim przypadku nie jestem pewien, ponieważ działa to dla mnie: http://jsfiddle.net/3wCYz/1/

Jedną z rzeczy, które możesz chcieć wypróbować, jest umieszczenie kodu, którego używasz, aby uzyskać szerokość i wysokość wewnątrz funkcji obsługi tagu wideo, który nasłuchuje zdarzenie loadedmetadata:

gdzie dimensionFunction to funkcja, która wykonuje to, co już robisz, aby pobrać wymiary.

To, co robi, to upewnij się, że metadane do pliku wideo zostały pobrane, zanim spróbujesz go pobrać.

+0

Dodałem słuchacza, również wypróbowanego z 1 sekundowym opóźnieniem, działa dobrze tylko w Chrome, prawdopodobnie dlatego, że inne przeglądarki nie obsługują jeszcze webm? Wyświetla 0 x 0 w Firefoksie z opóźnieniem i nic z odbiornikiem. Ale hej, wszystko dobrze w Chrome: D dzięki – 3mpetri

+0

@ 3mpetri W takim przypadku powinieneś przenieść swój skrypt poniżej kodu html. Lub spraw, aby twój skrypt był wykonywany wewnątrz zdarzenia 'onload'. Zdecydowanie nie zalecam opóźnień. –

+1

Uzgodniono, umieszczając go wewnątrz zdarzenia onload. Aby móc go odtwarzać w innych przeglądarkach, wystarczy go zakodować dla mp4 i ogv, a obejmiesz wszystkie przeglądarki obsługujące html5. Bardzo łatwe jest kodowanie za pomocą różnych darmowych narzędzi - używam Miro Converter: http://www.mirovideoconverter.com/ – kinakuta

Powiązane problemy