startRecording()调用未初始化的AudioRecord?

时间:2016-06-23 05:44:50

标签: android-asynctask avaudiorecorder

我有以下代码导致init失败:

recorder = new AudioRecord(AudioSource.MIC, mSamplingRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, iN);
        recorder.startRecording();

我的活动调用了它:

            new AsyncTask<Void, Void, Void>(){
            @Override
            protected Void doInBackground(Void... none) {
                record();
                return null;
            }
        }.execute();

它给出了以下例外:

E / AudioRecord:AudioFlinger无法创建记录轨道,状态:-1  E / AudioRecord-JNI:创建AudioRecord实例时出错:初始化检查失败,状态为-1。  E / android.media.AudioRecord:初始化本机AudioRecord对象时出现错误代码-20。  E / AudioRecord:AudioFlinger无法创建记录轨道,状态:-1  E / AudioRecord-JNI:创建AudioRecord实例时出错:初始化检查失败,状态为-1。  E / android.media.AudioRecord:初始化本机AudioRecord对象时的错误代码-20。

可能出了什么问题,好吗? 我相信这不是录音机的问题,而是异步任务/多线程。因为它之前我有一个包含onCreateView的片段就像​​魅力一样,我把AsyncTask调用放在onClick的按钮上。 现在我在我的活动的OnCreate()中初始化UI,我没有片段或onCreateView,我以为我已经使用了异步线程但仍然......

1 个答案:

答案 0 :(得分:0)

已解决 - 在更改清单中的权限后从Android Studio中删除apk实际上并未更改应用设置中的权限。 我必须手动打开设置 - &gt;&gt;应用 - &gt;权限 - &gt;滑动“麦克风即将开启。