AudioRecord:“Overrun user”日志 - 它们是什么意思?

时间:2013-04-13 08:46:36

标签: android audio audiorecord

我有一段简单的代码可以创建一个AudioRecord对象,然后用它来记录到一个文件。它非常标准,似乎工作得非常好。我正在使用三星GalaxyS Vibrant运行股票Android 2.2。

但是,我在logcat中以不同的间隔收到这些消息:

04-13 14:03:30.754: V/AudioRecord(4831): Overrun user: 820, server: 1040, flowControlFlag 0
04-13 14:03:30.766: V/AudioRecord(4831): Overrun user: 820, server: 1040, flowControlFlag 1

有谁知道这些意味着什么?我是否超越了内部音频缓冲区并丢失了音频帧?它似乎不是来自录制的文件,但这些间歇性的消息让我有点担心。

4 个答案:

答案 0 :(得分:6)

这可能有点晚了,但这仅仅是一条日志信息(不是特别是三星,我看到它有不同的品牌,型号和品牌)告诉你,你已经开始录制,但没有读出来来自AudioRecord的数据。

因此Overrun user,AudioRecord的缓冲区已满。

答案 1 :(得分:2)

这似乎是一些三星设备使用的内部日志。所以你不能隐藏它们,但它也没有害处。如果您不想看到它,您可以从logcat

中过滤掉它

答案 2 :(得分:0)

检查您的权限。

<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>

此权限是必要的

答案 3 :(得分:0)

我认为是因为读取pcm数据太慢,我遇到了同样的问题,当我在两次读取操作之间做一点睡眠时,当我将睡眠时间设置得更长时,这个日志会变得更多。 所以我认为有两种方法可以解决这个问题: 1.快速读取操作 2.当你将AudioRecorder设置为2 * minBufferSize或更大时,将缓冲区设置得更大。它允许您在每次读取操作时读取更多数据。 希望你能理解,对不起我的英语不好。