отсутствующее видео html5 закончилось событием на iPad

Иногда мое видео HTML5 не генерирует событие «завершение» на iPad. Кажется, это происходит только тогда, когда я опускаю атрибут «controls» и начинаю воспроизведение с javascript. Обычно это работает нормально в первый раз, но во второй раз видео воспроизводится, но не генерирует событие «завершение». Я вызываю «load()» после каждого воспроизведения, чтобы вернуться к началу клипа (потому что поиск вообще не работает — см. эту тему). У меня есть обходной путь, который заключается в отслеживании событий «timeupdate» и выполнении моих действий в конце игры, когда vid.currentTime>=vid.duration, но мне интересно, сталкивался ли кто-нибудь еще с этой проблемой. Далее следует некоторый соответствующий код.

Ура - Крис

Функция загрузки документа:

function load() {
    var vid = document.getElementById('vid');
    vid.addEventListener('ended', function() {
        alert('video ended');
        vid.load();
    },false);
}

HTML:

<body onload="load();">
<h1>HTML5 Video Test</h1>
<input type="submit" value="Play" onclick="document.getElementById('vid').play();">
<video id="vid" src="test.mov" width="640" height="480"></video>
</body>

person wodenx    schedule 06.10.2010    source источник


Ответы (1)


Не используйте load() для принудительного поиска. Если вы установите video.currentTime на 0.1 вместо 0, видео перейдет к началу, а событие ended по-прежнему будет отправляться правильно. (Проверено на iOS 3.2 и 4.2)

person Miller Medeiros    schedule 29.03.2011
comment
Спасибо! Вы не знаете, задокументировано ли это где-нибудь? Или это ошибка? seek(0) работает в настольных браузерах. - person wodenx; 04.04.2011
comment
это ошибка, я задокументировал ее в своем собственном блоге: blog.millermedeiros.com/2011/03/ - person Miller Medeiros; 25.08.2011