MediaRecorderでステレオ録音ができない
Android8.1のNexus 5Xを使って動作確認をしながらAndroidアプリを作っています。
AudioRecorderを使ってのステレオ録音はできたのですが、MediaRecorderを使ってのステレオ録音ができません。
ステレオ、モノラルの確認はMediaInfoを使用しております。
勉強のために、MediaRecorderを使っての作成を行いたいと思っております。
必要なものや、方法等わかる方いらっしゃいましたら教えてください。
現在、以下のように設定して録音しようとしております。
private void startMediaRecord(){
try{
//ファイルが存在する場合は削除する
mediaFile = new File(mFilePath);
if(mediaFile.exists()) {
mediaFile.delete();
}
// setAudioSource setOutputFormatの前によぶ
mMediaRecorder.setAudioSource(mAudioSource);
// サンプリングレート
// ステレオ録音する際は、指定が必要
int samplingRate = 44100;
mMediaRecorder.setAudioSamplingRate(samplingRate);
// ビットレート (サンプリングレート × サンプリング深度)
int bitRate = samplingRate * 16 * mRecMode; // 16bitなので ×16
Log.d(TAG, "bitRate = " + bitRate);
mMediaRecorder.setAudioEncodingBitRate(bitRate);
// setOutputFormat → setAudioEncoderの順に呼ぶ
// DEFAULTにするとAMRになってしまう可能性があるためステレオ対応のものを指定
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
//ファイルの保存先を指定
mMediaRecorder.setOutputFile(mFilePath);
//チャンネル数の指定
mMediaRecorder.setAudioChannels(mRecMode);
//録音の準備をする
mMediaRecorder.prepare();
//録音開始
mMediaRecorder.start();
mTextView.setText("Now Recording!");
} catch(Exception e){
mTextView.setText("Recording Start Error!");
e.printStackTrace();
}
}