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,如需轉載請自行聯系原作者