首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同步AudioRecord和AudioTrack

如何同步AudioRecord和AudioTrack
EN

Stack Overflow用户
提问于 2010-05-19 12:35:07
回答 1查看 1.4K关注 0票数 3

有没有任何方法来同步捕捉和播放Android中的音频数据?

我需要做一些信号处理(回波消除等)这需要在示例级别进行同步。

也就是说,每当硬件捕获一个音频帧,我需要相应的帧,通过扬声器播放高精度。

任何帮助或暗示都是非常感谢的。提前谢谢。

-flesym

EN

回答 1

Stack Overflow用户

发布于 2011-08-19 17:19:01

我能够在我的Arm5 (WM8650)处理器上实现回波取消。以下是我所采取的步骤:

  1. I用JNI封装Speex,并在向编码器发送PCM帧之前调用回波处理例程。
  2. 由于对回放和回波帧之间的延迟非常敏感,所以实现了一个队列,并将发送到AudioTrack的所有数据包排队。队列的大小应该大致等于内部AudioTrack缓冲区的大小。这样,当echo_playback将数据包从其内部缓冲区发送到声卡时,就会向AudioTrack发送数据包。这种方法消除了延迟,但是echo仍然没有取消,
  3. I用JNI包装了WebRtc回波消除部分,并在向编码器发送数据包之前调用了它的方法。echo仍然存在,但是库显然试图取消它。
  4. I应用了P2中描述的缓冲技术,它最终开始工作。但是,每个设备都需要调整延迟。还请注意,WebRtc有移动版和完整版本的回波取消。完整的版本大大降低了处理器的速度,可能应该只在ARM7上运行。移动版本工作,但质量较低的

我希望这能帮到别人。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2865486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档