android – 实时播放收到的声音时的声音回声
作者:互联网
我正在尝试使用AudioRecord从耳机的麦克风接收音频,并使用AudioTrack实时播放音频到耳机.我已经实现了所需的代码,但问题是有一个令人不安的Echo.我没有使用扬声器而且我正在使用耳机.那么,什么导致这种回声?我使用了设备的echocanceller,它在API级别11中引入并且回声减少但没有消失.我知道audio latency in android设备但我无法理解延迟可能会在我使用耳机时引起回声.请指导我正确的方向.
解决方法:
我不认为这个问题有一个通用的解决方案.
原因是
1)耳机质量可能不好,麦克风和耳机之间可能存在内部耦合,因为耳机中的导线非常接近
2)android中的回声消除器并非强制要求所有设备实现.尝试先查询它和设置.回声消除器的实现也可能因设备而异
3)延迟会对回声消除器的性能产生很大影响,因为算法必须适应延迟并缓冲大量音频.
4)较低版本的Android有谷歌本身承认的可怕的延迟问题.您可能希望转移到更高的Android版本,因为这些东西已经大大改进.
通常,任何具有直接硬件访问权限的API(如麦克风和摄像头),性能因设备而异,并且无法保证性能.
如果您正在考虑集成,可能需要查看openSLES以获得更好的音频性能并更轻松地集成到AEC库.
请看 –
https://source.android.com/devices/latency_design.html
Low-latency audio playback on Android
https://www.youtube.com/watch?v=d3kfEeMZ65c
希望这可以帮助,
问候,
Shrish
标签:android,audio,android-audiorecord 来源: https://codeday.me/bug/20190709/1410476.html