我正在构建一个
Android应用程序,具有通过麦克风捕获声音并通过耳机播放的功能.为此,我使用了“AudioRecord”和“AudioTrack”.以下是我使用的代码的一部分,(仅供了解)
mInBufferSize = AudioRecord.getMinBufferSize(mSampleRate,AudioFormat.CHANNEL_CONFIGURATION_MONO,mFormat); mOutBufferSize = AudioTrack.getMinBufferSize(mSampleRate,mFormat); mAudioInput = new AudioRecord(MediaRecorder.AudioSource.MIC,mSampleRate,mFormat,mInBufferSize); mAudioOutput = new AudioTrack(AudioManager.STREAM_MUSIC,mOutBufferSize,AudioTrack.MODE_STREAM);
但主要的问题是我要录制mp3格式的传入声音吗?请帮我在这里,我真的很感激…
提前致谢
解决方法
使用MediaRecorder保存.mp3文件有一个工作.就是这样:
recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setOutputFile(Environment.getExternalStorageDirectory() .getAbsolutePath() + "/myrecording.mp3"); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); recorder.prepare(); recorder.start();
这里的重要部分是setOuputFormat和setAudioEncoder.如果您正在使用MediaRecorder.OutputFormat.MPEG_4和MediaRecorder.AudioEncoder.AAC,MediaRecorder可以播放mp3.希望这有助于某人.
当然,如果你宁愿使用AudioRecorder类,我认为下面链接的源代码Chirag应该是正常的 – https://github.com/yhirano/Mp3VoiceRecorderSampleForAndroid(虽然你可能需要将其中的一些从日语翻译成英文)
编辑:作为布鲁诺,还有一些其他人在评论中指出,这并不是MP3中的文件编码.编码仍然是AAC.但是,如果您尝试播放声音,使用.mp3扩展名通过上面的代码保存,它仍然会播放没有问题,因为大多数媒体播放器足够聪明以检测真实的编码.