Приведенный ниже код отлично работает при использовании Chrome, Firefox или Safari на рабочем столе. Он также отлично работает на Chrome и Firefox на мобильных устройствах. Но на мобильной платформе iOS, использующей Safari, он не воспроизводит звук. Просто тишина.
Я использую этот код в React SPA.
Документы MDN для decodeAudioData (https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/decodeAudioData) показывают, что iOS поддерживается , а не , поэтому мой вопрос заключается в том, как переработать это так, чтобы оно работало на всех платформах.
Спасибо.
let url = "https://.....someAudioFile.mp3"
let source
const getRecordingData = url => {
let request = new XMLHttpRequest()
request.open('GET', url, true)
request.responseType = 'arraybuffer'
request.send()
request.onload = function() {
let audioCtx = new (window.AudioContext || window.webkitAudioContext)()
audioCtx.decodeAudioData(
request.response,
function onSuccess(decodedBuffer) {
// Decoding was successful
source = audioCtx.createBufferSource()
source.buffer = decodedBuffer
source.connect(audioCtx.destination)
source.loop = false
source.start(0)
},
function onFailure(e) {
console.log('Error with decoding audio data' + e.err)
}
)
}
}
getRecordingData(url)