SampleRate [44100]中的错误消息“AFCCreateReSampler:avAFCInfo-> bUsed [0] outSampleRate [16000] ......”是什么意思?

时间:2010-07-23 01:34:19

标签: android

在Android 2.1设备(Samsung Galexy S)上,我尝试使用以下代码录制音频数据。


int frequency = 16000;

int channelConfiguration = AudioFormat.CHANNEL_IN_MONO;
   int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;    int bufferSize = AudioRecord.getMinBufferSize(frequency,channelConfiguration,audioEncoding);    AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,      frequency,channelConfiguration,audioEncoding,bufferSize);    short [] buffer = new short [bufferSize];

isAdIdle = false;    audioRecord.startRecording();

while(isRecording){     int bufferReadResult = audioRecord.read(buffer,0,bufferSize);                                 //保存缓冲区数据

}

此代码在其他设备上运行良好,例如nexus one,但在Samsung Galexy S上,我有以下错误消息:


AFCCreateReSampler:avAFCInfo->在SampleRate [44100]中使用[0] outSampleRate [16000] nChannel [2] outBitDepth [16]

有什么问题?谁能帮我解决这个问题?

提前谢谢〜 易金

3 个答案:

答案 0 :(得分:2)

如果你仍然对它感兴趣,我发现有几件事可以使音频记录在Galaxy S上运行(以及驱动程序顶部带有alsa的所有设备)。

  1. 不要相信getMinBufferSize! 这里有一些似乎适用于所有设备的代码:
  2. if(inputBuffSizeRec <= 4096){
       inputBuffSizeRec = 4096 * 3/2;
    }
    

    这已经有很多帮助,但你仍然会观察到一些丢失的帧

    1. 请勿继续阅读。
    2. 您必须在每个读取方法之前添加get current timestamp;将它与之前的值进行比较,如果您要读取的最后一帧和帧之间的延迟大于帧大小,则应在读取之前等待(休眠)。目标是不调用read方法,而缓冲区(音频驱动程序缓冲区)没有提供你要求的东西。

      请注意,我读取的块大小低于缓冲区大小(我认为也更好)。

      我在另一个android opensource sip应用程序(sipdroid)上找到了解决方案。集成在我的,听起来很好。不知道日志中是否还有错误(警告?),但是......我用我的应用程序从galaxy S中掏出了一个语音邮件记录器,声音很完美。

答案 1 :(得分:1)

我也面临这个问题。 这里参考我的项目的未决问题: http://code.google.com/p/csipsimple/issues/detail?id=89#c6

不幸的是我没有可以测试的设备。

您是否使用其他音频格式和其他采样率? 我想使用44100作为频率将删除错误,因为根据其名称,它与重新采样器创建有关。

如果你能说出你所观察到的音频数据,我会非常有趣吗?是不稳定的声音/不完整?没有?运行良好,但录制时cpu超载?

答案 2 :(得分:0)

我尝试使用不同的采样率录制,8000和44100 Hz。但失败了!

在8000 Hz时,成功创建了一个AudioRecord对象,但从中读取的数据不稳定且不完整!这与16000 Hz录音的结果相同。

在44100 Hz设置下,AudioRecord对象的创建失败并抛出一个execption。

记录的数据(在位交换后保存)如下所示: (二进制) (地址0h)80 07 80 07 ...(相同模式)...
......(相同的模式)...... (地址210h)07 80 07 80 08 80 FD 82 FF 87 5C 8D ...... ......(不同的嘈杂模式)......

我认为CPU负载非常低且几乎空闲。

现在我正在尝试测试AudioRecord的其他设置〜 并寻求社区的帮助!

感谢您的帮助和兴趣

是的,金金。