我有一个Mediametadatareview,但是当我使用setDataSource()get out 时,我注意到错误是由于具有该名称/storage/sdcard/NhạcCuảTôi.mp3的文件(文件名是越南语)引起的。如何将该文件更改为真正的 URI?
这是我的代码
mediaMetadataRetriever = new MediaMetadataRetriever();
Uri u = Uri.parse(filedata);
mediaMetadataRetriever.setDataSource(MainAC.this, u);
String gene= mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE);
它坠毁在 mediaMetadataRetriever.setDataSource(MainAC.this, u);
我认为错误是因为文件名有重音,有什么方法可以帮助将字符串转换为 URI 并取消标记?因为如果我删除带有该标志的文件,则应用程序可以正常工作
这是 LOGCAT :
java.lang.RuntimeException: Unable to start activity ComponentInfo{dragonrocky.music/dragonrocky.music.MainAC}: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2505)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2577)
at android.app.ActivityThread.access$1000(ActivityThread.java:164)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1462)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:160)
at android.app.ActivityThread.main(ActivityThread.java:5541)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
Caused by: java.lang.RuntimeException: setDataSource failed: status = 0x80000000
at android.media.MediaMetadataRetriever.setDataSource(Native Method)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:71)
at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:165)
at dragonrocky.music.MainAC.loadAudio(MainAC.java:519)
at dragonrocky.music.MainAC.onCreate(MainAC.java:156)
千万里不及你
紫衣仙女
相关分类