【问题标题】:Sound echo while playing recieved sound in real time实时播放接收到的声音时的声音回声
【发布时间】:2013-03-26 05:51:18
【问题描述】:

我正在尝试使用AudioRecord 接收来自耳机麦克风的音频,并使用AudioTrack 将音频实时播放到耳机。我已经实现了所需的代码,但问题是有一个令人不安的回声。我没有使用扬声器,而是使用耳机。那么,是什么导致了这个回声?我使用了在 API 级别 11 中引入的设备回声消除器,回声减少但没有消失。我知道audio latency in android 设备,但我不明白在我使用耳机时延迟如何导致回声。请指引我正确的方向。

【问题讨论】:

  • 加力:你有没有找到任何解决方案,同样的 pblm 发生在我身边
  • 在我花费了无数时间之后,我接受了这是不可避免的,并且没有办法处理它。

标签: android audio android-audiorecord


【解决方案1】:

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

1) 耳机质量可能不好,因为耳机线非常靠近,所以麦克风和耳机之间可能存在内部耦合

2) android 中的回声消除器并不是所有设备都必须实现的。尝试先查询它和设置。回声消除器的实现也可能因设备而异

3) 延迟对回声消除器的性能影响很大,因为算法必须适应延迟并缓冲那么多音频。

4) 较低版本的 android 存在 google 本身承认的可怕延迟问题。您可能希望升级到更高的 android 版本,因为这些内容已经得到很大改进。

一般而言,任何具有某些直接硬件访问权限的 API,如 mic 和 camera ,性能因设备而异,无法保证性能。

如果您正在考虑集成,您可能希望查看 openSLES 以获得更好的音频性能和更轻松地集成到 AEC 库。

请看—— https://source.android.com/devices/latency_design.html Low-latency audio playback on Android https://www.youtube.com/watch?v=d3kfEeMZ65c

希望这会有所帮助,

问候, 虾肉

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多