Я изо всех сил пытался заставить 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);
});
Насколько я могу судить, iOS Safari должен поддерживать потоки mp3. без каких-либо проблем. Он также должен поддерживать функцию decodeAudioData(). Большинство других ответов, которые мне удалось найти, были связаны с попыткой воспроизвести звук до того, как пользователь взаимодействует с экраном. В моем случае я запускаю звук с помощью кнопки воспроизведения на странице, поэтому не думаю, что это проблема.
И последнее: я разрабатываю для Windows и использую iOS-адаптер удаленной отладки. Возможно, именно поэтому я не получаю полезных отладочных сообщений, однако все остальные сообщения об отладке и ошибках работают нормально, поэтому я не думаю, что это так.
Спасибо. заранее за любую помощь!
Подробнее здесь: https://stackoverflow.com/questions/664 ... -14-safari
Мобильная версия