请教一下 froyo 的录音问题 ,bufferSize = 2048, latency = 250000, 在 AudioHardwareALSA.cpp 中设置 sampleRate:    
    requestedRate = rate = 8000;
    err = snd_pcm_hw_params_set_rate_near(mHandle,
                                          mHardwareParams,
                                          &requestedRate,
                                          0);1. 如果我没有配置 asound.conf 的情况下,snd_pcm_open 就会去调 “default” 的 device, 这样我再用 snd_pcm_hw_params_get_rate() 读出来的 sample 是 8000 MHz, 但此时传到 kernel 的 sample 实际上还是 44100,
而且录音看起来是正常的, alsa-lib部分不太清楚, 请问一下这是怎么个情况?2. 如果我在 asound.conf 中配置了 pcm.AndroidRecord_Speaker_normal, snd_pcm_open() 就会默认打开了这个 pcm device, 但是在设置 sampleRate 的时候就会出现 warning:Requested rate (8000 HZ) does not match actual rate (44100 HZ), 用 snd_pcm_hw_params_get_rate() 读到的 的值是 44100. 这时录的音听起来像是被放慢拉长了很多, 10秒左右的录音播放起来得 1 分钟多 请问这是什么原因造成的,bufferSize 设的不对还是什么,另外, 我使用 alsa_aplay 44100,8000 sampleRate 录音都是正常的.那位指点一下, 不胜感激 

解决方案 »

  1.   

    我遇到的问题和楼主差不多。
    我是在2.3的系统上,使用QQ语音通话时,对方听到我这边录的声音会变慢。分析的原因是QQ录音时采样率44.1K未传到内核中,内核使用的是默认的8K的采样率,而播放对方的语音采样率是44.1K,这样导致解码器需要的EPLL时钟频率录音和播放不一致,故出现声音变慢的问题。
    录音时采样率如何从系统层传到内核层,还在分析中,与楼主共勉~
      

  2.   

    请问下,我现在的问题是用alsa_aplay能够录音,我用录音软件就不能录音,但是我用alsa_aplay来测试录音的话是可以的,我这里没有配置过asound.conf,这里是模式的,如果我要录音进行切换,我要怎么配置这个asound.conf,请指点下