2017-08-12 47 views
1

我得到這個錯誤,當我試圖在安卓6.0的設備上運行的代碼AudioFlinger無法創建記錄軌跡,狀態:-1錯誤創建AudioRecord實例:初始化校驗失敗,狀態-1

AudioFlinger不能創建記錄軌道,狀態:-1創建AudioRecord時出錯 實例:初始化檢查失敗,狀態爲-1。

我有這樣的代碼,低版本的設備上工作良好

私人無效的startRecording(){

 bufferSize = AudioRecord.getMinBufferSize(11025, 
       AudioFormat.CHANNEL_CONFIGURATION_MONO, 
       AudioFormat.ENCODING_PCM_16BIT); 


    recorder = new AudioRecord(MediaRecorder.AudioSource.MIC, 
    11025, AudioFormat.CHANNEL_CONFIGURATION_MONO,RECORDER_AUDIO_ENCODING, 1024);//bufferSize); 

    int i = recorder.getState(); 

    if(i==1) 
    { 
    recorder.startRecording(); 
    ShowToast("Recording started successfully"); 
    } 

     isRecording = true; 

    recordingThread = new Thread(new Runnable() 
    { 

    @Override 
    public void run() 
    { 
    writeAudioDataToFile(); 
    } 
    },"AudioRecorder Thread"); 

    recordingThread.start(); 
    } 

回答

0

我假設你已經在manifest.xml中設定的<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />權限

在Android版本上,6.0音頻被認爲是「危險的」權限,因此您還需要在運行時通過添加代碼來獲得權限。關於此的說明:

https://developer.android.com/training/permissions/requesting.html

相關問題