Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

179
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!