我正在将音频文件下载到我的
Android应用程序缓存中,然后必须使用MediaPlayer访问该缓存.该文件的创建权限为-rw ——-(如Eclipse的文件资源管理器中所示).
使用这些权限,MediaPlayer无法访问音频文件.失败在logcat中显示为:
java.io.IOException: Prepare Failed.: status=0x1
我的应用针对API级别8.
如何设置下载的音频文件的权限以使其可由MediaPlayer读取?
顺便说一句,我正在创建文件:
FileOutputStream out = new FileOutputStream(fRecording);
当我尝试将文件创建为MODE_WORLD_READABLE时,不会创建任何文件:
FileOutputStream out = activity.openFileOutput(fRecording.getAbsolutePath(),Activity.MODE_WORLD_READABLE);
使用openFileOutput的logcat错误是:
java.lang.IllegalArgumentException: File /data/data/com.calltrunk.android/cache/727adda7-0ef1-490f-9853-fe13ad1e9416 contains a path separator
解决方法
>使用文件名和操作名调用openFileOutput()
模式.这将返回具有权限的FileOutputStream
MODE_WORLD_READABLE.
>使用write()写入文件.
>使用close()关闭流.
模式.这将返回具有权限的FileOutputStream
MODE_WORLD_READABLE.
>使用write()写入文件.
>使用close()关闭流.
例如:( txt文件的代码,在您的情况下,它的音频文件根据它进行更改)
String FILENAME = "hello_file"; String string = "hello world!"; FileOutputStream fos = openFileOutput(FILENAME,Context.MODE_WORLD_READABLE); fos.write(string.getBytes()); fos.close();