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

229
Views
(Javascript) El micrófono y el audio de Mediastream no están sincronizados

Escribí una grabadora que graba el micrófono de getUsermedia y el audio que es local usando Howler JS. Creé un destino de flujo de medios y conecté cada fuente (micrófono, audio) al destino. el audio parece estar bien, pero el micrófono se retrasa unos 2 segundos. No puedo resolver el problema. ¿podrían ayudarme chicos?

 var recorder; const stop = document.getElementsByClassName("stop"); const record = document.getElementsByClassName("record"); let mediaDest = Howler.ctx.createMediaStreamDestination(); Howler.masterGain.connect(mediaDest); function onRecordingReady(e) { // 'e' has 'blob event' //var audio = document.getElementById("audio"); audioBlob = e.data; // e.data has blob. //audio.src = URL.createObjectURL(e.data); } let audioBlob; let audioURL = ""; navigator.mediaDevices.getUserMedia({ audio: true }).then(function (stream) { let userMic = Howler.ctx.createMediaStreamSource(stream); userMic.connect(mediaDest); Howler.masterGain.connect(mediaDest); recorder = new MediaRecorder(mediaDest.stream); recorder.addEventListener("dataavailable", onRecordingReady); recorder.addEventListener("stop", function () { W3Module.convertWebmToMP3(audioBlob).then((mp3blob) => { const downloadLink = document.createElement("a"); downloadLink.href = URL.createObjectURL(mp3blob); downloadLink.setAttribute("download", "audio"); //downloadLink.click(); var audio = document.getElementById("audio"); audio.src = URL.createObjectURL(mp3blob); console.log(mp3blob); }); }); }); record[0].addEventListener("click", function () { recorder.start(); }); stop[0].addEventListener("click", function () { recorder.stop(); });
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Descubrí la solución. No sabía que podía conectar MediaStreamAudioSourceNode a GainNode. Si alguien sufre este problema, simplemente conecte un nodo a otro nodo en lugar de conectar cada nodo al destino.

Conecté el sourceNode al GainNode y conecté el GainNode al destino.

========================= No era la solución... Reproducción de GainNode en tiempo real cada vez que hay entrada... así que, incluso si puedo elimine la latencia, se produce una reproducción molesta.

about 4 years ago · Santiago Trujillo 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!