音声の録音

音声の録音

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です