Safari — WebkitAudioContext задыхается от некоторых mp3-файлов по неизвестной причине

У меня проблема с некоторыми файлами MP3 только в Safari.

Вот codepen: https://codepen.io/parliament718/pen/ExjwWEp

В хроме обе кнопки работают на воспроизведение обоих файлов. В сафари работает только первая кнопка.

Почему это? Safari просто задыхается, когда не видит суффикс «.mp3», или это что-то еще?

  • Оба запроса возвращают заголовок Content-Type "audio/mp3".
  • Оба файла можно скачать в формате mp3 и воспроизвести в любом аудиоплеере.
  • Оба файла можно воспроизводить прямо через адресную строку Safari.

Но только один из файлов воспроизводится программно с использованием WebkitAudioContext.

Неудачный код:

window.webkitAudioContext.decodeAudioData(request.response, ...)

person parliament    schedule 05.03.2020    source источник


Ответы (1)


Ваш файл MP3 недействителен. В начале файла многокомпонентный мусор формы. Если вы откроете его с помощью шестнадцатеричного редактора, вы увидите это:

Вид в шестнадцатеричном редакторе

В любом другом месте, где воспроизводится этот файл, это просто любезно относится к вам. :-)

Кроме того, используйте audio/mpeg для заголовка Content-Type. В вашем случае это не имеет значения, поскольку вы используете аудиоконтекст для декодирования данных... он не знает, каким был исходный заголовок Content-Type. Я упоминаю об этом здесь для других, так как это распространенная ошибка.

person Brad    schedule 06.03.2020
comment
Вы, сэр, спаситель, спасибо. Я использовал предварительно подписанный URL-адрес AWS и напрямую отправлял FormData вместо объекта File. Буквально все остальное играет в нее... Сафари такой подлый! - person parliament; 06.03.2020