Android:如何使用MediaRecorder类生成.WAV文件?
我在创建某些文件类型时遇到了一些问题Android:如何使用MediaRecorder类生成.WAV文件?,android,audio,wav,audio-recording,mediarecorder,Android,Audio,Wav,Audio Recording,Mediarecorder,我在创建某些文件类型时遇到了一些问题 MediaRecorder myAudioRecorder=new MediaRecorder(); myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); myAudioRecorder.setAudioEncoder(MediaRecorde
MediaRecorder myAudioRecorder=new MediaRecorder();
myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
myAudioRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
myAudioRecorder.setAudioEncodingBitRate(16);
你能解释一下,为了生成常规的MP3、WAV、AAC或AMR音频文件,我需要结合使用其中的哪一个吗。现在我不确定这是否正确:(使用MediaRecorder无法生成wav或mp3。使用MediaRecorder可以生成3gp、aac和m4a。我正在使用这些代码块从麦克风录制音频:
if (Build.VERSION.SDK_INT <= 9) {
// Android 2.3.2 and lower
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "XXX"
+ File.separator + strDate + ".3gp";
mRecorder.setAudioSamplingRate(8000);
mRecorder.setAudioEncodingBitRate(12200);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
} else if (Build.VERSION.SDK_INT >= 10 && Build.VERSION.SDK_INT <= 15) {
// Android 2.3.3 - Android 4.0.4
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "XXX"
+ File.separator + strDate + ".m4a";
mRecorder.setAudioSamplingRate(44100);
mRecorder.setAudioEncodingBitRate(96000);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
} else {
// Android 4.1 and above
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "XXX"
+ File.separator + strDate + ".m4a";
mRecorder.setAudioSamplingRate(44100);
mRecorder.setAudioEncodingBitRate(96000);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.HE_AAC);
}
if(Build.VERSION.SDK\u INT=10&&Build.VERSION.SDK\u INT