我正在提到手机上的媒体here(使用ContentResolver
),但返回的路径格式为/storage/emulated/0/...
并尝试将其用于mediaPlayer.SetDataSource()
产生一个Java.IO.FileNotFoundException
。我意识到这条路径可能不是真正的路径,但我如何从这条路径中获得真正的路径呢?
当我在项目文件夹中有资产时,MediaPlayer
工作正常。但我不能让它与其他文件一起工作。我已经设置了READ_EXTERNAL_STORAGE
的权限。
虽然我宁愿在C#中得到答案,但Java中的答案可能就足够了。
修改
我看到一些处理类似事情的答案,但他们都假设我有一个Uri
。虽然上面的方法返回一个字符串。我没有成功地将它转换为Uri,所以我甚至无法测试这些解决方案。
答案 0 :(得分:0)
访问android: Get real path from uri
你可以从中了解如何从中获得真正的道路。
答案 1 :(得分:0)
尝试传递此而不是传递硬编码值(/ storage / emulated / 0 /)
String path= Environment.getExternalStorageDirectory()+"/yourFolder/";
不要忘记在清单文件中添加权限