为了账号安全,请及时绑定邮箱和手机立即绑定

如何将字符串转换为 uri 而不会出现语言错误?

如何将字符串转换为 uri 而不会出现语言错误?

忽然笑 2021-06-15 17:08:11
我有一个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)
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

不要在Uri这里使用 a 。要么使用该setDataSource(String)方法并直接传递您的路径,要么自己打开文件并使用setDataSource(FileDescriptor).


查看完整回答
反对 回复 2021-06-23
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

试试这个

Uri myUri = Uri.parse("/storage/sdcard/NhạcCuảTôi.mp3");


查看完整回答
反对 回复 2021-06-23
  • 2 回答
  • 0 关注
  • 225 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信