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

97
Views
Navegador Audio en vivo Eliminar retraso de almacenamiento en búfer

Estoy tratando de implementar una función en la que un cliente pueda grabar audio ( MediaRecorder ) y enviarlo a un servidor. Luego, el servidor crea un enlace donde un cliente diferente puede descargar la transmisión en vivo.

Y todo funciona bien, excepto por un detalle: la transmisión se retrasa alrededor de 4 segundos. Creo que esto tiene que ver con el almacenamiento en búfer del audioNode.

Esto es lo que creo que está sucediendo: el audioNode espera hasta que haya 4 segundos de sonido disponibles. Dado que el sonido se crea en vivo, debe esperar 4 segundos para que los datos estén disponibles.

Entonces mi pregunta es: ¿cómo puedo deshabilitar o reducir el tamaño del búfer de un nodo de audio?

Estoy usando electron como mi "navegador" o como se llame.

La solicitud http (flujo de descarga) se ve así:

ingrese la descripción de la imagen aquí

En el código javascript, simplemente adjunto el enlace a mi sourceNode:

 audioNode = document.getElementById("callAudio") audioNode.volume = 1.0 const audioSourceNode = document.getElementById("callAudioSource") const audioContext = new window.AudioContext() const audioTrack = audioContext.createMediaElementSource(audioNode) const audioGain = audioContext.createGain() const audioDestination = audioContext.createMediaStreamDestination(); const audioTrack.connect(audioGain).connect(audioDestination) audioSourceNode.setAttribute("src", "http://localhost:12347") audioNode.load() audioNode.play().then(() => { console.debug("started playing after:", currentTime) playing = true })

El audioNode en sí se ve así:

 <audio controls id="callAudio" class="audioControls" crossorigin="anonymous" preload="none"> <source src="" id="callAudioSource"></src> </audio>

La depuración me dice que tardó aproximadamente 4,2 segundos en comenzar a jugar.

Cuando observo esta transmisión desde la perspectiva de mi servidor, veo que tengo un retraso de menos de 10 ms. Por lo tanto, esto no puede deberse a que el servidor produzca un retraso.

about 4 years ago · Juan Pablo Isaza
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!