2016-03-22 50 views
0

我想录制音频使用AudioRecord类不同的采样率和PCM编码,问题是,构建AudioRecord对象,并实施使用AudioFormat.ENCODING_PCM_8BITAudioFormat.ENCODING_PCM_FLOATAudioRecorder.getMinBufferSize()方法时,不同的错误报告如:Android Studio中支持PCM编码格式

不支持的示例编码。应该是
ENCODING_PCM_8BIT
或ENCODING_PCM_16BIT。

E/android.media.AudioRecord:getMinBufferSize():无效音频格式。

事情是,我正在用棒棒糖测试Moto G的第一代,所以根据Android Developer文档AudioFormat.ENCODING_PCM_FLOAT的支持。 显然AudioRecorder.getMinBufferSize()只适用于AudioFormat.ENCODING_PCM_16BIT

那么我该如何知道MinBufferSize在构造函数上实现呢?

AudioRecord构造:

audioRecorder = new AudioRecord(audioSource, sampleRate, channelConfig, audioFormat, mBufferSize); 

AudioRecord方法:

mBufferSize = AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat); 

回答

2

AudioRecordAudioTrack 2米不同的东西。

AudioFormat.ENCODING_PCM_FLOATAudioTrack因为Lollipop

AudioRecord支持支持AudioFormat.ENCODING_PCM_FLOAT只因为Marshmallow

检查http://developer.android.com/reference/android/media/AudioFormat.html

enter image description here

+0

好了,所以我想没有浮动录制棒棒糖呢,怎么样?ENCODING_PCM_8BIT感谢您的快速答复 –

+0

您可以使用这些的 - ENCODING_PCM_8BIT或ENCODING_PCM_16BIT –