4

我是Android開發新手,我有下一個問題/問題。MediaRecorder類記錄音頻的問題 - 準備()給出例外 - 權限被拒絕

我正在玩MediaRecorder類來錄製來自麥克風的音頻。我遵循官方網站上指示的步驟:http://developer.android.com/reference/android/media/MediaRecorder.html

所以我有一個方法,初始化和配置MediaRecorder對象,以開始記錄。在這裏,你有代碼:


     //initializes audio recorder 
     MediaRecorder mrecorder = new MediaRecorder(); 
     //configure the input sources 
     mrecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
     //set the output format 
     mrecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
     //set the audio encoding 
     mrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
     //specify the output file 
     mrecorder.setOutputFile("/sdcard/test.3gp"); 
     //prepare for recording 
     try { 
      mrecorder.prepare(); 
     } catch (IllegalStateException e) { 
      e.printStackTrace(); 
      Log.d("Syso". e.toString()); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      Log.d("Syso". e.toString()); 
     } 

當我在模擬器中執行該代碼,這要歸功於logcat的,我可以看到,該方法準備()給出了一個異常時,被稱爲:


java.io.FileNotFoundException: /sdcard/test.3gp (Permission denied) 

而且我不知道爲什麼會發生這種情況。由於異常的消息,我已經給清單中的權限,通過添加下面一行到XML來訪問存儲:


<uses-permission android:name="android.permission.STORAGE" /> 

但這並不解決任何事情,我仍然得到同樣的異常每時每刻。 SDCard根據仿真器安裝,所以我不知道。

回答