请问一下,这个mic获取始终为空是什么问题呢
lifei1245 opened this issue · 1 comments
lifei1245 commented
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
lifei1245 commented
不好意思...忘记动态申请权限了....