Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не получается словить loadedmetadata (https://javascript.ru/forum/events/29317-ne-poluchaetsya-slovit-loadedmetadata.html)

(Sandr) 23.06.2012 12:36

Не получается словить loadedmetadata
 
Всем привет) Подскажите, как правильно узнать длину видео?
Как я понял, для этого нужно дождаться его загрузки, после чего происходит событие loadedmetadata, которое оповещает о том, что видео было загружено. Вешаем слушатель на этот обработчик и смотрим свойство duration объекта видео. Но у меня возникли проблемы с этим.
Прошу помощи знающих)

Сам код:
<html>
    <head>
    </head>
    <script>
    window.onload = function() {
      var V = document.getElementById("video1"),
          playButton = document.getElementById("play"),
          duration = document.getElementById("duration");
    
    
    V.addEventListener("loadedmetadata", function() {
        duration.innerHTML = V.duration;
    }, false);
    
    playButton.addEventListener("click", function() {
          V.play();
      }, false);
}
    </script>
  <body>
    <video id="video1">
      <source src="video.mp4" type="video/mp4"/>
    </video>
    <br>
    <button id="play" type="button">Play</button>
    <span id="duration">0</span><br>
    </body>
</html>

NoResponse 23.06.2012 14:55

рекомендую почитать
http://www.thevista.ru/page13925-mul...eo&ratin gs=1
конкретно 3.3.1 и 3.3.3

еще по теме
http://developer.apple.com/library/s...avaScript.html
https://developer.mozilla.org/en/DOM/Media_events
http://dev.opera.com/articles/view/e...deo-and-audio/
http://blog.gingertech.net/wp-conten...oc2011/#slide5

вообще примерно пол года назад баловался... так браузеры вели себя по разному, как сейчас обстоят дела не знаю

(Sandr) 24.06.2012 00:58

NoResponse,
спасибо конечно, но это не совсем помогло. Штука в том, что при первой загрузке событие происходит, а если перезагрузить страницу, то не происходит. Это из-за того, что видео уже загружено в кэш?

(Sandr) 24.06.2012 01:02

Ещё есть вопрос..
Есть такой код:
<video id="video1">
  <source src="video.mp4" type="video/mp4">
  <source src="video.ogg" type="video/ogg">
</video>


Как изменить оба вложенных тега <source> ? К примеру, чтобы было так
<video id="video1">
  <source src="video11.mp4" type="video/mp4">
  <source src="video11.ogg" type="video/ogg">
</video>

bot87 24.06.2012 09:58

так?
source=document.getElementById("video1").getElemen tsByTagName("source")
source[0].src="";
source[1].src="";

(Sandr) 24.06.2012 13:28

bot87,
атрибуты меняются, но видео остаётся тем же самым..

Deff 24.06.2012 14:36

Цитата:

Сообщение от (Sandr)
спасибо конечно, но это не совсем помогло. Штука в том, что при первой загрузке событие происходит, а если перезагрузить страницу, то не происходит. Это из-за того, что видео уже загружено в кэш?

Попробуйте после видео воткнуть однопиксельную картинку и по событию загрузки вызывать ту же функцию,
в обработке события, отключать повторное использование, дабы при первой загрузке - не дублировать, А при обновлении страницы функцию будет вызывать картинка

(Sandr) 24.06.2012 21:21

Deff,
спасибо. Попробую позже.


Часовой пояс GMT +3, время: 17:45.