音声の録音
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
を設定すると改善させることがある