#javascript #safari #audiocontext
Вопрос:
Я использую аудиоконтекст для загрузки файла .mp3 для игры. Раньше это работало нормально, но после выхода Safari 15 я получаю сообщения от людей, в которых звук не воспроизводится. Звук работал для них нормально до того, как они обновили свой браузер.
На моем собственном Safari 15 это работает нормально, но для некоторых людей вызов audioContext.decodeAudioData
не удается, они просто получают EncodingError: Decoding failed
и никакой дополнительной информации. Я пытался использовать файлы .aac вместо .mp3, но происходит то же самое.
Трудно понять это, так как я не могу воспроизвести это сам. Есть какие-нибудь идеи?
Комментарии:
1. У меня точно такая же проблема. Не удалось воспроизвести локально, не удалось выяснить ни одной возможной причины этого, кроме новой ошибки браузера, с которой я ничего не мог поделать. В итоге удалось перехватить неудачные вызовы decodeAudioData и вернуться к библиотеке декодирования, поддерживаемой Wasm (из wasm-аудио-декодеров ). Потрясаю кулаками перед Apple, что я должен это сделать, но, похоже, это работает как заклинание.
2. Обратите внимание, что я на самом деле воспользовался возможностью переключиться на Opus audio, который Safari все равно изначально не поддерживает. Моя вилка wasm-аудио-декодеров включает в себя мои модификации для декодирования в веб-работнике, что предотвращает блокировку основного потока (точно так же, как decodeAudioData выполняется в отдельном потоке).
3. Кроме того, в случае, если это полезная точка данных, мои журналы Sentry показали, что эта проблема затронула около 20% пользователей Safari 15.
4. Круто! И то же самое: протестировано на двух компьютерах Mac M1 и двух компьютерах Mac x86, и, конечно, на них все работало безупречно.
5. Я протестировал 4 машины с Safari 15. У двух машин проблема с декодированием, у двух-нет. Два из них работают под управлением macOS 10.15.7 (Каталина). Те два, которые этого не делают, работают под управлением macOS 11 (BigSur). Конечно, при N=4 это очень неубедительно, но это может быть подсказкой. Кто-нибудь еще видит корреляцию между версией macOS и проблемой на своих машинах?
Ответ №1:
Существует регрессия песочницы, влияющая на Safari 15 с macOS Catalina 10.15. Он блокирует декодирование аудио с помощью веб — аудио
Комментарии:
1. Хорошо, наверное, проще всего просто переждать это, есть какие-нибудь идеи, когда они планируют выпустить обновление, которое исправит это?
2. Они уже это исправили? Как они не ускорили исправление, выше моего понимания.
3. У меня нет проблемы в Safari 15.2 (16612.3.6.1.8, 16612) в BigSur, но она есть в STP 137 (Safari 15.4, WebKit 16613.1.11.8), также в BigSur.