begeekmyfriend/yasea

请问一下,这个mic获取始终为空是什么问题呢

lifei1245 opened this issue · 1 comments

AudioRecord获取的status始终都是STATE_UNINITIALIZED

我又修改了一下获取的source(反射遍历的所有)

 AudioRecord mic = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, SrsEncoder.ASAMPLERATE,
                AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT, getPcmBufferSize() * 4);

        if (mic.getState() != AudioRecord.STATE_INITIALIZED) {
            Field[] fields = MediaRecorder.AudioSource.class.getDeclaredFields();
            for (Field f : fields) {
                try {
                    int o = (int) f.get(null);
                    mic = new AudioRecord(o, SrsEncoder.ASAMPLERATE,
                            AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT, getPcmBufferSize() * 4);
                    if (mic.getState() == AudioRecord.STATE_INITIALIZED) {
                        break;
                    }
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                } catch (NullPointerException E) {
                    E.printStackTrace();
                }
            }
        }

没有一个的状态是STATE_INITIALIZED

不好意思...忘记动态申请权限了....