Загруженные данные и другие события не запускались при вызове load () для тега <video>в IE / Edge - PullRequest
0 голосов
/ 15 февраля 2020

Недавно я наблюдал странную ситуацию, связанную с браузерами IE / Edge и событиями, связанными с тегами медиаресурсов, такими как <video>, <audio> et c.

На html5 spe c и нескольких авторитетных сайтах, таких как MDN, я узнал, что функция load(), вызываемая на объекте ресурса, таком как видео, должна вызывать запуск ряда событий. как loadstart, loadeddata et c. На первый взгляд кажется, что это старая функция, поддерживаемая везде, вплоть до IE9. Но на самом деле этого не происходит в браузерах Microsoft.

Что я пытаюсь сделать? На странице есть скрытый тег <video>. Обычно пользователь нажимает на элемент управления на странице, и я показываю загрузчик, ожидающий поступления данных (первый кадр). Как только страница получит данные - начните воспроизведение видео. Я ловлю событие loadeddata, чтобы скрыть загрузчик и показать и воспроизвести актуальный <video>. Однако, что бы я ни делал в IE / Edge - вызывая load() или динамически устанавливая src для <video> - это не имеет никакого эффекта. Свойство readyState <video> остается равным 0, что означает, что он даже не начал загружать данные. Я почти уверен, что видео отсутствует в кеше, но для полноты картины я попытался разрушить кеш, добавив случайную строку в URL видео. Нет эффекта. Однако , если я просто просто позвоню play() на <video>, он фактически начинает выполнять работу и запускает все события, в конце концов вызывая воспроизведение видео.

Почему не получаются соответствующие события срабатывает при вызове тега load() на <video> в IE / Edge?

...