Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

219
Visualizações
(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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda