实时播放收到的声音时发出声音回声

时间:2013-04-04 08:43:03

标签: android audio android-audiorecord

我正在尝试使用AudioRecord从耳机的麦克风接收音频,并使用AudioTrack实时播放音频到耳机。我已经实现了所需的代码,但问题是有一个令人不安的Echo 。我没有使用扬声器而且我正在使用耳机。那么,什么导致这种回声?我使用了设备的echocanceller,它在API级别11中引入并且回声减少但没有消失。我知道audio latency in android设备但我无法理解延迟可能会在我使用耳机时引起回声。请指导我正确的方向。

1 个答案:

答案 0 :(得分:1)

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

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