called on an uninitialized AudioRecord
在我们使用AudioRecord的时候,常常会遇到上面的错误,在开发的过程中也遇到这个问题,网上的解决方案各式各样,现在列举一下,可能只会对某些特定的情况有效果。
1、有些手机会存在这个问题,换手机试下可能会有用(治标不治本)。
2、new AudioRecord(int,int,int,int),这个构造函数的第二个参数代表了采样率,在不同手机上采样率不同,可以多尝试几组,比如44100,16000等。
3、听起来很不靠谱、、重启手机
以上三个方法都是网上提出的,我遇到的不是使用上述方法解决的,所以上述方法有效与否,这里不给出结论。
下面是重点!
网上还有一种解决方案就是关于加录音权限
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
这个是我用到的方案,而且是有效果的,没有加上述权限会出现上述的错误。
但是我在加入权限之后仍然会有问题,经过摸索,发现造成该原因的问题是虽然应用申请加权限了,但是手机却没有真正给应用权限!。
以我们测试的手机小米5来说,从安全中心可以看到录音权限状态是“询问”,当我们把录音权限改为“允许”之后,上述错误就不存在了。
在我们这里的测试是有效果的,但不保证各位在使用的时候有效
希望我们遇到的问题对开发的各位有帮助。