@iljaGolubev

Есть возможность получить http status code при при ошибке воспроизведении audio/video на странице?

При запросе audio.mp3 бэк может вернуть HTTP 200 | 206 | 404 | 401.
Хочу на 400 и 401 показывать разные сообщения в браузере.
Но по спецификации не вижу возможности получить именно http код.

Какие есть альтернативы/библиотеки воспроизведения media на странице чтобы получить причину MEDIA_ERR_SRC_NOT_SUPPORTED когда бэк возвращает HTTP 401?

Была идея использовать WebWorker, но натолкнулся на это и не стал дальше копать.
---
сейчас так работает. не нравится, что невозможно поймать 404, повторный запрос и вообще лаг на fetch
// псевдо
audio = new Audio();
audio.src = url;
audio.addEventListener('canplaythrough', () => audio.play() });
// костыль. 
audio.onerror = function (e) {
  fetch('/check_auth', {credentials: 'include'})
    .then(r => {
        if (r.status == 401) { alert('Обновить страницу') }
        else { alert('Что-то пошло не так. Возможно файл не найден')  }
    })
}
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 1
@grek_cheburek
Программист самоучка
Есть же событие error.
audio.addEventListener("error",function(){
alert(this.error.code+" - "+this.error.message);
},false);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы