[android]マイクの音量を取得する

hidaka

2009/11/13

TAG
android, AudioRecord, マイク

音声の録音の際、MediaRecorderクラスを使えばすぐに3gpで保存できたり
開きやすかったりと便利ですが、音声入力の音量をとりたいなど、リアルタイム
に扱いたい時に使うAudioTrackとAudioRecordというクラスがあります。

バイトデータで取得できるのでいろいろとデータの利用価値が上がるのですが、
これで記録されるフォーマットはPCMになります。wavで知られてたりするほぼ
生の音声データです。
これが曲者でMediaPlayerクラスで再生できなかったりAudioTrackクラスで
再生しようとするとファイルのバイトデータ呼んで書き込んでとまた手間になり
ます。でもMediaRecorderではできないようなのでこちらを使います。

int bufferReadResultTEST = audioRecordTEST.read(bufferTEST, 0,bufferSizeTEST);
short tmpbuff;
for (int i = 0; i < bufferReadResultTEST; i++) {
tmpbuff = bufferTEST[i];
tmpvmax2 = Math.max(tmpvmax2, tmpbuff);
}

こんな感じ。もうちょい高速化できるだろうし全バッファ試す必要
もないんだけども。
ちなみにAudioRecordで録音がめんどくさいんで同時にMediaRecorder
使おうとしたら録音失敗しました。

 

コメントを投稿する

トラックバック (0)

トラックバックURL: http://kiteretsu.kayac.com/cgi-bin/mt-tb.cgi/49