2013-04-04 111 views
4

我尝试使用AudioRecord接收来自耳机麦克风的音频,并使用AudioTrack实时播放耳机。我已经实现了所需的代码,但问题是存在干扰回声。我没有使用扬声器,我正在使用耳机。那么,什么造成这种回声?我使用了在API级别11中引入的设备回声消除器,并且回声降低但未消失。我知道audio latency in android设备,但我无法理解延迟是否会在使用耳机时导致回声。请指导我正确的方向。实时播放接收到的声音时的声音回声

+0

加力:做ü找到任何解决办法,同样PBLM发生在我身边 – Pradeep 2014-04-10 10:45:31

+0

经过不断我花了很多时间,我只是接受了它的必然性,而没有办法处理它。 – 2014-04-14 16:49:13

回答

1

我不认为有这个问题的通用解决方案。 原因是

1)耳机质量可能是坏的,有可能是麦克风和耳机之间的内部耦合的导线在耳机非常接近

2)在机器人的回波消除器不强制由所有设备实施。先尝试查询并设置。 3)回声消除器的实现可能因设备而异实施

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