AudioFlinger(59):RecordThread:暂停Activity时缓冲区溢出?

dch*_*lle 10 audio android

我有一个应用程序,它包含服务和活动,可以由服务为某些事件启动.该服务可以创建和使用AudioRecord和AudioTrack类 - 此时显示应用程序的活动.问题是如果Activity被暂停(即调用onPause())我开始得到RecordThread:缓冲区溢出错误?

我的猜测是AudioRecorder在主线程中运行.并且,即使它是由服务创建的,当Activity暂停读取停止因此缓冲区溢出?AudioRecorder读取必须在单独的线程中完成,即使它在服务中运行吗?

非常感谢任何帮助,谢谢.

chr*_*ris 9

当您没有足够快地从AudioRecord对象中提取数据时,会发生RecordThread缓冲区溢出.

你肯定应该有一个循环从sperate线程中的AudioRecord对象中提取数据,如果你的活动被暂停,你应该停止该线程(除非你想在后台记录.)

以下是一些工作实现的示例: