У меня проблемы с видео в Chrome.Поиск в HTML5 видео с Chrome
По какой-то причине, независимо от того, что я делаю, video.seekable.end(0)
не всегда равен 0.
Когда я звоню video.currentTime = 5
, а затем console.log(video.currentTime)
, я вижу, что всегда 0, который, кажется, чтобы сбросить видео.
Я пробовал как веб-форматы на основе MP4, так и VP9, но оба дали одинаковые результаты.
Что еще более раздражает то, что Firefox отлично работает. Что-то особенное в Chrome, о котором я должен знать?
Вот мой код (который работает только в Firefox):
<div class="myvideo">
<video width="500" height="300" id="video1" preload="auto">
<source src="data/video1.webm" type="video/webm"/>
Your browser does not support videos.
</video>
</div>
А вот JavaScript:
var videoDiv = $(".myvideo").children().get(0)
videoDiv.load();
videoDiv.addEventListener("loadeddata", function(){
console.log("loaded");
console.log(videoDiv.seekable.end(0)); //Why is this always 0 in Chrome, but not Firefox?
videoDiv.currentTime = 5;
console.log(videoDiv.currentTime); //Why is this also always 0 in Chrome, but not Firefox?
});
Обратите внимание, что просто вызывая videoDiv.play()
на самом деле правильно воспроизводить видео в обоих браузерах.
Кроме того, после того, как файл фильма полностью загружен, videoDiv.buffered.end(0)
также дает правильные значения в обоих браузерах.
У меня есть аналогичная проблема, но только на Mac. Chrome отказывается искать, но Firefox работает. Я запускаю на моем компьютере совместимый с http 206 сервер, и я вижу 206 запросов в сетевом журнале. Может быть, я должен задать новый вопрос о SO для этого. –
Вы говорите, что нам нужно просто отправить код возврата как 206 для функции поиска для работы в Chrome? – vbNewbie
Нет, я говорю, что 206 - это способ проверки того, что частичный контент может быть получен с сервера. Если вы пишете собственный сервер, вы должны быть совместимы с протоколом. Chrome использует эту информацию, чтобы не загружать все видео перед потоковой передачей. Это эффективно. – Tovi7