AKTUALIZACJA: Ok, chociaż nie rozwiązałem dokładnie tego problemu, ale wymyśliłem pracę, która rozwiązuje mój największy problem ... doświadczenie użytkownika.Problem z pobieraniem wideo HTML5
Po pierwsze wideo nie zaczyna się ładować, dopóki widz nie kliknie przycisku odtwarzania, więc zakładam, że informacja o czasie trwania nie była dostępna do pobrania (nie wiem, jak rozwiązać ten konkretny problem) chociaż zakładam, że wymagałoby to po prostu załadowania metadanych wideo niezależnie od filmu, ale nie wiem nawet, czy to możliwe).
Aby obejść fakt, że nie ma danych o czasie trwania, postanowiłem ukryć informacje o czasie trwania (i właściwie całą kontrolę) do momentu, aż włączysz grę.
Wiem ... oszukuje. Ale na razie sprawia mi to przyjemność :)
To powiedziawszy ... jeśli ktoś wie, jak załadować metadane wideo oddzielnie od pliku wideo ... proszę udostępnij. Myślę, że powinno to całkowicie rozwiązać ten problem.
Pracuję nad budowaniem odtwarzacza wideo HTML5 z niestandardowym interfejsem, ale mam pewne problemy z wyświetlaniem informacji o czasie trwania wideo.
Moje HTML jest naprawdę proste (patrz niżej)
<video id="video" poster="image.jpg" controls>
<source src="video_path.mp4" type="video/mp4" />
<source src="video_path.ogv" type="video/ogg" />
</video>
<ul class="controls">
<li class="time"><p><span id="timer">0</span> of <span id="duration">0</span></p></li>
</ul>
A javascript Używam dostać i wstawić czas jest
var duration = $('#duration').get(0);
var vid_duration = Math.round(video.duration);
duration.firstChild.nodeValue = vid_duration;
Problemem jest to nic się nie dzieje. Wiem, że plik wideo zawiera dane dotyczące czasu trwania, ponieważ jeśli używam domyślnych elementów sterujących, wyświetla się dobrze.
Ale prawdziwy Najdziwniejsze jest to, czy mogę umieścić alert (czas trwania) w moim kodu jak tak
alert(duration);
var vid_duration = Math.round(video.duration);
duration.firstChild.nodeValue = vid_duration;
następnie działa w porządku (minus przykry alert, że wyskakuje). Wszelkie pomysły, co się tutaj dzieje lub jak mogę to naprawić?
Do jakiej przeglądarki używasz HTML5? Nie wszystkie przeglądarki obsługują HTML5. –
Nie sądzę, że jest to problem z przeglądarką. Korzystam z najnowszej wersji przeglądarki Firefox/Webkit/Chrome, aby ją przetestować. – drebabels
Możesz zgłosić czas trwania za pomocą nagłówka HTTP "X-Content-Duration". Przeglądarka może wykonać żądanie "HEAD", aby zebrać te informacje przed pobraniem wideo. https://developer.mozilla.org/en/Configuring_servers_for_Ogg_media – TRiG