Android MediaRecorder-SetAudioEncodingBitRate-HowTo
我试着用安卓系统录制音频。使用MediaRecorder的声音质量真糟糕。有没有办法提高质量?文档中说,应该有类似“setAudioEncodingBitRate”的东西,但我还没有找到实现它的方法 然后我尝试使用AudioRecord函数将声音写入流。质量很好,但pcm文件太大,因为我想将它们上载到远程服务器 有人知道怎么做吗Android MediaRecorder-SetAudioEncodingBitRate-HowTo,android,audio,mediarecorder,Android,Audio,Mediarecorder,我试着用安卓系统录制音频。使用MediaRecorder的声音质量真糟糕。有没有办法提高质量?文档中说,应该有类似“setAudioEncodingBitRate”的东西,但我还没有找到实现它的方法 然后我尝试使用AudioRecord函数将声音写入流。质量很好,但pcm文件太大,因为我想将它们上载到远程服务器 有人知道怎么做吗 提高录音机文件的质量或 动态压缩pcm(如mp3或其他) 非常感谢您的帮助 是的,您可以使用录音机更改一些内容,以提高音质。即比特率/采样率和音频编码器本身 下面是
- 提高录音机文件的质量或
- 动态压缩pcm(如mp3或其他)
非常感谢您的帮助 是的,您可以使用录音机更改一些内容,以提高音质。即比特率/采样率和音频编码器本身 下面是一段代码,我最近一直在使用它来录制音频,还为您提供了捕获设置
private void startRecording() {
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(getFilename());
recorder.setOnErrorListener(errorListener);
recorder.setOnInfoListener(infoListener);
try {
recorder.prepare();
recorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
显然,您需要呼叫录音机。必要时停止并释放录音机
private void stopRecording() {
if (null != recorder) {
recorder.stop();
recorder.reset();
recorder.release();
recorder = null;
}
}
我仍然觉得在质量上还有改进的余地,所以这只是一项正在进行的工作。
希望有帮助 您已将比特率设置得太低。也许96000左右的值可以提供更好的质量这里有一个类似的问题,你可以参考这个:谢谢你的快速回答,但我还是不明白。RingDroid应用程序使用低质量的MediaRecorder。排练助手不会压缩流。我是不是错过了什么?坦白说,我真的没试过。我刚刚遇到了类似的问题。所以伙计们,我找到了解决方案:setAudioEncodingBitrate从2.2开始工作。我用的是2.1愚蠢的我!