检查设备支持的PCM采样率

时间:2013-03-26 14:51:50

标签: android audiorecord sample-rate

我想检查一下设备是否支持特定的采样率。

我已经尝试了以下(它应该根据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");
    }

1 个答案:

答案 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) {