Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用MediaRecorder录制时出现音频质量问题_Android - Fatal编程技术网

Android 使用MediaRecorder录制时出现音频质量问题

Android 使用MediaRecorder录制时出现音频质量问题,android,Android,android应用程序中MediaRecorder录制的音频有如此多的噪音。我如何在录制时使用噪音抑制功能来消除噪音。您是使用仿真器进行测试,还是在实际设备上进行测试(如果是,是哪种设备)?声学调谐(包括增益控制、降噪等)将特定于给定的平台和产品,您无法更改 Jellybean包含API,允许应用程序对录音应用某些声学过滤器,噪声抑制器就是其中之一。然而,通过使用该API,您将应用程序限制为仅在运行Jellybean或更高版本的设备上正常运行(甚至不是所有这些设备都可能实际实现此功能) 另一种可

android应用程序中MediaRecorder录制的音频有如此多的噪音。我如何在录制时使用噪音抑制功能来消除噪音。

您是使用仿真器进行测试,还是在实际设备上进行测试(如果是,是哪种设备)?声学调谐(包括增益控制、降噪等)将特定于给定的平台和产品,您无法更改

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

另一种可能是在你的应用程序中加入一个噪音抑制器。例如,我认为Speex包括噪声抑制功能,但它面向低比特率语音编码


我在使用MediaRecorder时遇到了同样的音频质量低的问题,并最终找到了正确的工作解决方案。以下是您需要对高质量音频录制进行的一些修改:

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

关于stackoverflow的许多解决方案都建议使用
.setAudioEncodingBitrate(16)
,但16太低,不能被认为是毫无意义的

来源:@Grant answer on stackoverflow

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