我想检查一下设备是否支持特定的采样率。
我已经尝试了以下(它应该根据http://developer.android.com/reference/android/media/AudioRecord.html#getMinBufferSize(int,int,int))但是没有(它永远不会得到AudioRecord.ERROR_BAD_VALUE):
int bufferSize8000 = AudioRecord.getMinBufferSize(90000000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);
if(bufferSize8000 != (AudioRecord.ERROR_BAD_VALUE | AudioRecord.ERROR )) {
Log.v("samplerate", String.valueOf(bufferSize8000));
} else {
Log.v("samplerate", "NOTsupported");
}
答案 0 :(得分:0)
(AudioRecord.ERROR_BAD_VALUE | AudioRecord.ERROR )
意味着-2 | -1,等于-1,等于AudioRecord.ERROR
,这就是为什么你永远不会得到你期望的结果。
所以这个
if(bufferSize8000 != (AudioRecord.ERROR_BAD_VALUE | AudioRecord.ERROR )) {
应该是
if (bufferSize8000 != Audiorecord.ERROR_BAD_VALUE && bufferSize8000 != AudioRecord.ERROR) {