音声の録音
Androidで音声の録音をするには
MediaRecorderを使う
これを使うことで録音や録画ができる
以下は初期化から録音まで
//MediaRecorder初期化
if(mMediaRecorder == null){
mMediaRecorder = new MediaRecorder();
}
//入力をマイクへ設定
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//保存フォーマットを3gpに設定
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
//Audioエンコードをデフォルトへ
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
//microSDへ名前を指定して保存
String fileName = "recorder.3gp";
mFilePath = Environment.getExternalStorageDirectory() + "/" +fileName;
mMediaRecorder.setOutputFile(mFilePath);
//録音準備完了なら録音開始
try{
mMediaRecorder.prepare();
}cash(Exception e){
e.printStackTrace();
Log.e(TAG, e.toString(), e);
}
なお、録音停止は、MediaRecorder.stop()を使う
if(mMediaRecorder != null){
mMediaRecorder.stop();
mMediaRecorder.release();
}
また
録音機能には権限が必要になるため
AndroidManifest.xmlへ
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
が必要になる
また、microSDへの保存についても権限が必要になる
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
を追加する
MediaRecorderは、初期化設定して
MediaRecorder.prepare()を読んで準備し
MediaRecorder.start()で録音開始
初期化のときに音声なのか
映像なのかにより初期化方法は異なる
そして、録音のポイントは
オーディオソースの設定
オーディオ出力の設定になる
一般的な録音でいいけど
もし録音した音声が音割れするなら
MediaRecorder.setAudioSource()の引数へ
MediaRecorder.AudioSource.VOICE_RECOGNITION
を設定すると改善させることがある