videojs - Как поймать пользовательские коды ошибок http во время прямой трансляции? - PullRequest
0 голосов
/ 07 октября 2019

У меня есть прямой эфир (HLS), который я играю с использованием videojs 6.8. Для некоторых пользователей после начала воспроизведения (было загружено около 4-5 .ts файлов) сервер выдает ошибку 409.

Как мне перехватить этот конкретный код ошибки, чтобы я могпрограммно остановить воспроизведение и показать сообщение об ошибке?

В настоящее время videojs пытается возобновить воспроизведение бесконечно. Я пробовал retryplaylist, blacklistplaylist, но вся информация, которую я получаю, состоит в том, что плейлист занесен в черный список и повторяется, я не вижу нигде кода HTTP в моем console.log(). player.on('error') не выдает никакой ошибки. Я перепробовал все три из следующего, но ни один из них не дает мне http-код:

    player.on('error', function (e) {
        // no log
        console.log(e);
    })

     player.tech().on('retryplaylist', function (e, data) {
       // logs that it is being retried, but no http code
       console.log('retry');
       console.log(e);
     })

    player.tech().on('usage', function (e, data) {
        // logs the even 'retryplaylist` but does not give me a http code.
        console.log('usage');
        console.log(e)
    })

Я не хочу помещать свое сообщение в retryplaylist, потому что это событие будет выброшено в случае медленногосеть тоже (я уже проверял это).

Что мне нужно сделать, чтобы поймать конкретную ошибку 409?

...