WebAudioAPI decodeAudioData() выдает нулевую ошибку в iOS 14 SafariIOS

Программируем под IOS
Ответить
Anonymous
 WebAudioAPI decodeAudioData() выдает нулевую ошибку в iOS 14 Safari

Сообщение Anonymous »

У меня есть проигрыватель аудиопотоков в формате mp3, который хорошо работает во всех настольных браузерах, используя MediaSourceExtensions с резервным вариантом WebAudioAPI для тех браузеров, которые не поддерживают MSE. iOS Safari является одним из таких браузеров и теоретически должен без проблем поддерживать декодирование mp3 через API веб-аудио.
Я изо всех сил пытался заставить iOS Safari правильно воспроизводить аудиофрагменты mp3, которые возвращается из потока. На данный момент это единственный браузер, у которого, похоже, есть проблемы, и я хоть убей не могу понять, что происходит. К сожалению, информации о таких крайних случаях не так много, и другие вопросы здесь, на StackOverflow, не помогли.
Вот соответствующая часть моего js-кода, где дела зависают. Это функция обратного вызова для процесса async fetch(), который извлекает данные mp3 из потока.

Код: Выделить всё

async function pushStream(value) {
// Web Audio streaming for browsers that don't support MSE
if (usingWebAudio) {
// convert the stream UInt8Array to an ArrayBuffer
var dataBuffer = value.stream.buffer;
// decode the raw mp3 chunks
audCtx.decodeAudioData(dataBuffer, function(newData) {
// add the decoded data to the buffer
console.log("pushing new audio data to buffer");
webAudioBuffer.push(newData);
// if we have audio in the buffer, play it
if (webAudioBuffer.length) {
scheduleWebAudio();
}
}, function(e) {
console.error(e);
});
Я вижу, что запускается обратный вызов ошибки и печатается значение null: null в качестве сообщения об ошибке (очень полезно). Время от времени я вижу, как консоль выводит новые аудиоданные в буфер, но, похоже, это происходит только раз в несколько минут во время воспроизведения потока. Почти все потоковые данные выдают ошибки во время декодирования, и отсутствие полезных сообщений об ошибках не позволяет мне понять, почему.
Насколько я могу судить, iOS Safari должен поддерживать потоки mp3. без каких-либо проблем. Он также должен поддерживать функцию decodeAudioData(). Большинство других ответов, которые мне удалось найти, были связаны с попыткой воспроизвести звук до того, как пользователь взаимодействует с экраном. В моем случае я запускаю звук с помощью кнопки воспроизведения на странице, поэтому не думаю, что это проблема.
И последнее: я разрабатываю для Windows и использую iOS-адаптер удаленной отладки. Возможно, именно поэтому я не получаю полезных отладочных сообщений, однако все остальные сообщения об отладке и ошибках работают нормально, поэтому я не думаю, что это так.
Спасибо. заранее за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/664 ... -14-safari
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»