I love iPhone, Android, Cocos2d-x
[iPhone] Audio Queue でマイクからの音のレベルを取得する
[iPhone] Audio Queue でマイクから録音する方法 でマイクからの音を録音する方法を書きました。その際に音のレベルを取得する方法です。
昨日のコードに追加していく形になります。
レベルメータを有効にする
AudioRecorder#record の最後に以下を追加
UInt32 enabledLevelMeter = true; AudioQueueSetProperty(queue,kAudioQueueProperty_EnableLevelMetering,&enabledLevelMeter,sizeof(UInt32));
最高レベルと平均レベルを取得するメソッドを追加
AudioRecorder.m に以下のメソッドを追加
-(float) getPeakPower
{
AudioQueueLevelMeterState levelMeter;
UInt32 levelMeterSize = sizeof(AudioQueueLevelMeterState);
AudioQueueGetProperty(queue,kAudioQueueProperty_CurrentLevelMeterDB,&levelMeter,&levelMeterSize);
return levelMeter.mPeakPower;
}
-(float) getAveragePower
{
AudioQueueLevelMeterState levelMeter;
UInt32 levelMeterSize = sizeof(AudioQueueLevelMeterState);
AudioQueueGetProperty(queue,kAudioQueueProperty_CurrentLevelMeterDB,&levelMeter,&levelMeterSize);
return levelMeter.mAveragePower;
}
レベルを取得する
AudioInputCallback で以下のようにレベルを取得
float peak = [recorder getPeakPower]; float peak = [recorder getAveragePower];
関連する投稿
コメントをどうぞ
Additional comments powered by BackType