[英]Sample Rate in Android Audio Record class and MediaRecord class
我想知道在Android AudioRecord类和Media record类中设置音频采样率有什么区别? 在录音类中,我们在创建类对象时设置采样率,例如
recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
SampleRateInHz, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);
而在MediaRecorder类中,我们通过函数调用进行显式设置。 即
mrec.setAudioSamplingRate(samplingRate);
我尝试了两者,但采样率的效果只能在录音时看到,而在通过mediaRecorder类录制时则看不到。 我不明白两者之间的区别是什么。
作为android sdk文档的一部分, MediaRecord用于记录音频和视频。 记录控件基于简单的状态机。 除非需要访问原始音频数据并进行处理(例如,应用自己的DSP效果), 否则将始终使用MediaRecord记录声音。在这种情况下,将使用AudioRecord
。 setAudioSamplingRate
的MediaRecord
确实与传递SampleRateInHz
到AudioRecord
,设置所需的采样rate.The采样率越高越好音质和频率范围内,你会get.An理想乌曼耳能听到的声音从20到20000 hz.If你将采样率设置为4100hz,则您的频率响应将等于4100/2,几乎是20000hz。但是设备支持的频率范围是不同的。 您应始终检查设备是否支持所需的频率。
为了检查特定的频率是否有效,您可以使用以下代码:
int bufferSize = AudioRecord.getMinBufferSize(rate[i],AudioFormat.CHANNEL_IN_MONO,AudioFormat.ENCODING_PCM_16BIT);
如果bufferSize值大于0,则设备支持您提供的频率。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.