Чтобы перехватить событие ошибки, вы должны использовать video.addEventListner()
:
var video = document.createElement('video');
var onError = function() { // your handler};
video.addEventListener('error', onError, true);
...
// remove listener eventually
video.removeEventListener('error', onError, true);
Обратите внимание, что для третьего параметра addEventListener
(при захвате) должно быть установлено значение true.Событие ошибки обычно вызывается потомками видеоэлемента (тегов).
В любом случае, использование тега video для запуска события error
- не лучшая стратегия для определения, воспроизводилось ли видео.Это событие не запускается на некоторых устройствах Android и iOS.
Самый надежный метод, который я могу себе представить, - это прослушивание событий timeupdate
и ended
.Если воспроизводилось видео, вы получите как минимум 3 события с обновлением времени.В случае ошибки ended
будет срабатывать более надежно, чем error
.