#javascript #audio #page-refresh
Вопрос:
Я создаю звук во время выполнения, а затем устанавливаю источник.
let snd = new Audio(); snd.src = "file.mp3";
Это работает в Edge каждый раз. Иногда он выходит из строя в Chrome, особенно когда я отлаживаю. Он действительно выходит из строя только в первый раз, когда я начинаю отладку в сеансе, и почти всегда работает каждый раз после этого. Как только это сработает, оно снова и снова срабатывает для этого сеанса.
Обратите внимание на ошибку MEDIA_ERR_SRC_NOT_SUPPORTED
, которая, как я знаю, не соответствует действительности, потому что она работает, как правило, во второй раз.
Из того, что я прочитал здесь на Stackoverflow, может быть известная проблема с этим для больших звуковых файлов (что в моем случае).
Поэтому мое решение состоит в том, чтобы обновить страницу при возникновении ошибки:
snd.onerror = _ => window.location.refresh(true);
Обратите внимание на true
.
Когда вы это делаете, это true
означает, что вы обновляетесь с сервера. false
означает, что вы обновляете данные из кэша.
ВОПРОС: Учитывая мою проблему, что я должен делать, true
или false
?
Из-за низкой частоты отказов это настоящая проблема для отладки, поэтому любые советы будут высоко оценены.
Ответ №1:
Я думаю, что это так true
. Это срабатывало каждый раз. false
работало всего несколько раз. Но, как я уже сказал, поскольку это прерывистая ошибка, ее очень трудно отладить.