2017-09-20 98 views
0

我試圖使用MediaRecorder錄製音頻,它拒絕讓我打開文件。我沒有像在這裏寫的所有其他問題一樣寫入根目錄。Android - 只讀文件系統IOException - 不寫入根

代碼:

baseFilename = getFilesDir().getAbsolutePath() + "/loopRecord"; //returns /data/user/0/com.example.myName.looperpedal/files/loopRecord 
//and then later 
r.setOutputFile(baseFilename + (++numLoops)); 

這將導致prepare()失敗,:

9-20 07:55:49.919 14394-14394/com.example.brydon.looperpedal W/System.err: java.io.FileNotFoundException: null1: open failed: EROFS (Read-only file system) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at libcore.io.IoBridge.open(IoBridge.java:455) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at java.io.RandomAccessFile.<init>(RandomAccessFile.java:247) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at java.io.RandomAccessFile.<init>(RandomAccessFile.java:128) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.media.MediaRecorder.prepare(MediaRecorder.java:1136) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at com.example.brydon.looperpedal.MainActivity.setUpRecorder(MainActivity.java:52) 
09-20 07:55:49.920 14394-14394/com.example.brydon.looperpedal W/System.err:  at com.example.brydon.looperpedal.MainActivity.onCreate(MainActivity.java:38) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.Activity.performCreate(Activity.java:6912) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2900) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3008) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread.-wrap14(ActivityThread.java) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:102) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.os.Looper.loop(Looper.java:154) 
09-20 07:55:49.921 14394-14394/com.example.brydon.looperpedal W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:6688) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err: Caused by: android.system.ErrnoException: open failed: EROFS (Read-only file system) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at libcore.io.Posix.open(Native Method) 
09-20 07:55:49.922 14394-14394/com.example.brydon.looperpedal W/System.err:  at libcore.io.BlockGuardOs.open(BlockGuardOs.java:187) 
09-20 07:55:49.923 14394-14394/com.example.brydon.looperpedal W/System.err:  at libcore.io.IoBridge.open(IoBridge.java:441) 
09-20 07:55:49.923 14394-14394/com.example.brydon.looperpedal W/System.err:  ... 17 more 

在我的清單文件,我有:

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

雖然我不使用外部存儲,是否有內部存儲許可?

所有其他問題似乎使用我有的解決方案解決,所以我不知道我錯過了什麼。

+0

您正在使用模擬器還是真實設備? – Hetfieldan24

+0

真實設備 - 檢查我的答案,這是一個簡單的錯誤。 –

回答

0

我應該看到堆棧跟蹤 - 它試圖寫入的文件被稱爲null1

原來我試圖在建立文件名之前創建mediarecorder。

0

getFilesDir()。getAbsolutePath()路徑只使用您的應用程序或此數據不共享您的應用程序可見的此數據。

相關問題