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