0

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

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

1 回答 1

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) {
于 2013-03-26T15:17:36.637 回答