Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

181
Vistas
AudioContext no funciona en el estado de ejecución de Safari 15 pero currentTime no progresa

Parece que no puedo hacer que AudioContext en Safari 15 funcione correctamente. Cuando lo inicia, se encuentra en estado de ejecución, pero AudioContext.currentTime nunca funciona y no se reproduce nada. Todos los consejos anteriores cubren versiones anteriores de Safari en las que necesitaba llamar a resume dentro de un controlador de clics para sacarlo de un estado suspendido, pero como puede ver a continuación, se está ejecutando y llamar a resume no hace la diferencia. Este es el más ejemplo básico que se me ocurre a continuación:

https://codepen.io/thelamer123/pen/vYeLXOm

 <html> <body> <button onclick="play()">Test 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 = 'AudioContext State: ' + ac.state + '<br>Current Time: ' + ac.currentTime; }, 100); } </script> </body> </html>
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Así que esto fue un par de cosas, este ejemplo parece funcionar al azar dependiendo de su sistema operativo o plataforma. El consejo que le daría a cualquiera que se encuentre con esto es envolver su lógica en un clic de botón, no intente usar la captura de eventos. Inicie el contexto de audio en un nivel superior en la carga de la página y luego, cuando se presione el botón, haga esto:

 await audiocontext.resume(); console.log(audiocontext);

Por alguna razón, para tener compatibilidad, no solo necesita estar dentro de una función asíncrona en la que se hizo clic, sino también registrar en la consola el contexto de audio después de reanudarlo. Con Safari 15.1 parece que puede estar en un estado en el que se está "ejecutando", pero no realmente si no haces estas dos cosas.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda