2016-12-01 4 views
2

Я ищу способ, чтобы установить время ожидания перед видеоэлементом HTML5 сообщает об ошибке сети (HTML5 media element error code 2)Есть ли способ указать тайм-аут элемента видео HTML5?

Хотя испытания, я заметил, что если я перестану подключение к Интернету, видео элемента зависания и казалось бы, буферизации в течение очень долгого времени, прежде чем отображать код ошибки носителя 2. Могу ли я уменьшить это время вообще?

Были также случаи, когда он вообще не сообщал об ошибке и, похоже, навсегда оставался в памяти. Для этого есть причина?

ответ

1

К сожалению, я думаю, что вы не можете, это зависит от реализации каждого поставщика браузера. Согласно с HTML5 видео spec в пределах ресурса выборки алгоритм вы можете прочитать:

стойло таймаут является агентом пользователя определяется продолжительность времени, которое должно быть около трех секунд. Когда элемент мультимедиа, который активно пытается получить мультимедийные данные, не смог получить какие-либо данные на время, равное тайм-ауту блокировки, пользовательский агент должен поставить в очередь задачу для запуска простого события с именем, застопоренного в элементе.

Пользовательские агенты могут разрешать пользователям выборочно блокировать или замедлять загрузку мультимедийных данных. Когда загрузка медиа-элемента была полностью заблокирована, пользовательский агент должен действовать так, как будто он был остановлен (в отличие от действий, как будто соединение было закрыто). Скорость загрузки также может автоматически регулироваться пользовательским агентом, например. для балансировки загрузки с другими соединениями, использующими одну и ту же полосу пропускания.

Агенты пользователя могут решить не загружать больше контента в любое время, например. после буферизации пяти минут одночасового медиа-ресурса, ожидая, что пользователь решит, следует ли воспроизводить ресурс или нет, или в ожидании ввода пользователя в интерактивный ресурс. Когда загрузка медиа-элемента была приостановлена, пользовательский агент должен установить networkState в NETWORK_IDLE и поставить в очередь задачу для запуска простого события с именем suspend в элементе. Если и когда загрузка ресурса возобновляется, пользовательский агент должен установить networkState в NETWORK_LOADING.

+0

Есть ли способ подделать или имитировать код ошибки мультимедиа 2 для проверки правильности/элегантности обработки? – shrewdbeans

+0

'MEDIA_ERR_NETWORK = 2. Сетевая ошибка некоторого описания заставила пользовательский агент прекратить получение медиа-ресурса после того, как ресурс был создан для использования. «Итак, я думаю, просто отключите ваш интернет и используйте события HTML5 https://developer.mozilla.org/ru-US/docs/Web/Guide/Events/Media_events yo обрабатывать любую возможную ошибку. –

+0

Если браузер не отвечает, это может быть проблемой в браузере. Спецификация описывает только поведение, поставщик браузера несет ответственность за реализацию. –