天天看點

android音頻采集

1:建立一個AudioRecord類

AudioRecord *mpAudioRecord=new AudioRecord();

2:設定采集參數

       2.2版本:

        mpAudioRecord->set(AUDIO_SOURCE_DEFAULT, 0, 0,

AudioSystem::CHANNEL_IN_MONO, 0, 0,  AudioRecordCallback, this,  0,0);

      2.3版本:(多了一個參數)

       mpAudioRecord->set(AUDIO_SOURCE_DEFAULT, 0, 0,

AudioSystem::CHANNEL_IN_MONO, 0, 0,  AudioRecordCallback, this,  0,0,0);

3:檢查設定是否成功:

       if (mpAudioRecord->initCheck() != NO_ERROR)

return -1;  //error!

4:啟動采集:

mpAudioRecord->start();

5:采集回調函數的定義:

void Caudioplayer::AudioRecordCallback(int event, void* user, void *info)

{

        if (event != AudioTrack::EVENT_MORE_DATA)

                 return;

        Caudioplayer *audioplayer=static_cast<Caudioplayer*>(user);

        AudioTrack::Buffer *buffer = static_cast<AudioTrack::Buffer *>(info);

        short *lpOut = buffer->i16;

        Mutex::Autolock lock(audioplayer->mLock);

        copy_size=4096>buffer->size?buffer->size:4096;

        memcpy(tembuffer,lpOut,copy_size);

}

本文轉自 fanxiaojun 51CTO部落格,原文連結:http://blog.51cto.com/2343338/998112,如需轉載請自行聯系原作者

繼續閱讀