我試圖使用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"/>
雖然我不使用外部存儲,是否有內部存儲許可?
所有其他問題似乎使用我有的解決方案解決,所以我不知道我錯過了什麼。
您正在使用模擬器還是真實設備? – Hetfieldan24
真實設備 - 檢查我的答案,這是一個簡單的錯誤。 –