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

221
Vistas
(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 Respuestas
Responde la pregunta

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 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