Cómo calcular WebRtc correctamente en Android
WebRtc AECM ejecutándose en Android (Samsung GT-I9100G), el desplazamiento del eco es "aproximadamente", ¡pero es difícil calcular un buen valor! "msInSndCardBuf" está programado. Esto es algo que hemos hecho antes: usar AudioRecord y AudioTrack para procesar audio en tiempo real donde aparece el eco. Utilice JNI para encapsular la función WebRtcAecm. Utilice la interfaz WebRtcAecm JNI para manejar los ecos. Establecimos un valor constante de 240 milisegundos para "msInSndCardBuf", pero si la latencia cambia por algún motivo (subprocesos, etc.), la diferencia en AECM será mayor. Por tanto, queremos poder calcular "msInSndCardBuf" programado a 240 milisegundos. ) Creemos que esto está en el algoritmo audio_procession.h:
delay = (t_render - t_analyze) + (t_process - t_capture)
donde:
- t_analyze es el momento en que el cuadro se pasa a AnalyzeReverseStream(),
t_render es el momento en que el hardware de audio procesa la primera muestra del mismo cuadro.
- t_capture es el momento en que el hardware de audio captura la primera muestra del fotograma y t_pull es el momento en que se pasa el mismo fotograma a
. manejarCorriente().