read出来的数据buffer全为0,但返回的length是正常值,有没有大神指点下啊!!
都弄了我好几个星期啦,硬件什么都是好的~~Nexus S手机上~~~

解决方案 »

  1.   

    检查两点:
    1. 已经调用record.startRecording();
    2. 你的buffer是通过ByteBuffer.allocateDirect(len);获得的
      

  2.   

    录音是下层来做的,贴关键性的代码,谢谢大家的帮补

    pPriv->fRecord = new AudioRecord();

    ret = pPriv->fRecord->getMinFrameCount(&nMinFrameCount, rate, format, ch);

     pPriv->fRecord->set( AUDIO_SOURCE_DEFAULT,
    rate,
    format,
    #ifdef EP_ANDROID_SDK_R2
    channel,
    #else
    ch,
    #endif
    frameCount,
    0,
    NULL,
    NULL,
    0,
    true );

    fRecord->start();

    fRecord->read( buf, userSize );
    大致就是这样的流程!read会不停的被调用!
      

  3.   

    录音相关不是在java上做的,就是自己仿照audiorecord类,不是调用系统的!
    总要是驱动方面不是太清楚,什么情况MIC读出来的数据流是0呢????