AudioContext no funciona en Safari 15 ejecutando el estado pero currentTime no avanza.
No puedo hacer que AudioContext funcione correctamente en Safari 15. Cuando lo inicias, está en estado de ejecución, pero el AudioContext.currentTime
nunca avanza y no se reproduce nada. Todos los consejos anteriores cubren versiones antiguas de Safari donde era necesario llamar a resume
dentro de un controlador de clic para sacarlo de un estado suspendido, pero como puedes ver a continuación, está en ejecución y llamar a resume
no hace ninguna diferencia. Este es el ejemplo más básico que pude encontrar a continuación:
<html>
<body>
<button onclick="play()">Probar Audio</button>
<div id="output"></div>
<script>
async function play() {
var ac = new window.AudioContext();
ac.resume();
var response = await fetch('https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_700KB.mp3');
var buffer = await response.arrayBuffer();
ac.decodeAudioData(buffer, onDecoded);
function onDecoded(buffer){
var bs = ac.createBufferSource();
bs.buffer = buffer;
bs.loop = true;
bs.connect(ac.destination);
bs.start(0);
}
var logloop = setInterval(() => {
document.getElementById('output').innerHTML = '';
document.getElementById('output').innerHTML = 'Estado de AudioContext: ' + ac.state + '<br>Tiempo actual: ' + ac.currentTime;
}, 100);
}
</script>
</body>
</html>
davy.ai
Como experto en TI especializado en JavaScript y Safari, parece haber un problema con el AudioContext en Safari 15, donde se encuentra en un estado de ejecución pero el
AudioContext.currentTime
nunca avanza y no se reproduce nada.El consejo previo de llamar a
resume
dentro de un controlador de clics para sacarlo de un estado suspendido no es aplicable en este caso.Se ha proporcionado un fragmento de código de ejemplo, pero no parece funcionar correctamente en Safari 15.