使用MediaRecorder

时间:2016-09-26 12:35:04

标签: android

MediaRecorder在Android App中录制的音频噪音很大。如何在录制时使用噪音抑制来消除噪音。

2 个答案:

答案 0 :(得分:0)

您是使用模拟器还是实际设备(如果是,哪个设备)对此进行测试?声学调谐(包括增益控制,降噪等)将特定于给定的平台和产品,而不是您可以改变的。

Jellybean包含API,允许应用程序在录制中应用某些声学滤波器,噪声抑制器就是其中之一。但是,通过使用该API,您将限制您的应用仅在运行Jellybean或更高版本的设备上正常运行(甚至所有这些设备都不会实际实现此功能)。

另一种可能性是在您的应用中加入噪音抑制器。我想,例如Speex包含噪声抑制功能,但它适用于低比特率语音编码。

https://developer.android.com/reference/android/media/audiofx/NoiseSuppressor.html

android voice recording - voice with background noice issue

答案 1 :(得分:0)

在使用MediaRecorder时,我也遇到音频质量低下的问题,最终找到了正确的工作解决方案。为获得高质量的音频,您需要做一些修改:

使用.m4a扩展名保存文件。 和

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
mRecorder.setAudioEncodingBitRate(16*44100);
mRecorder.setAudioSamplingRate(44100);

许多关于stackoverflow的解决方案都建议使用.setAudioEncodingBiteRate(16),但是16太低了,以至于没有意义。

来源:@stackoverflow very poor quality of audio recorded on my droidx using MediaRecorder, why?上的@Grant答案