[英]How to uri to SD card mp3 file
我正在尝试播放存储在SD卡中的mp3文件。 我没有使用模拟器,而是使用带有cyanogenmod 13 android 6.0的三星Galaxy S3。
首先我尝试了
Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/gato.mp3")
但是
Environment.getExternalStorageDirectory().getPath()
将我带到/ storage / emulated / 0。
使用手机中的文件管理器,我看到3个内存存储位置:
这与我从计算机上看到的不同(仅限sdcard1和内部存储)。
我无法使它工作所以我把文件“gato.mp3”放在内部和sdcard1,我可以检查是否存在。 但随着
Environment.getExternalStorageDirectory().getPath()+"/gato.mp3"
它给了我路径/storage/emulated/0/gato.mp3,它应该让我到文件,并尝试手动设置路径到/storage/FE97-A11B/gato.mp3,用uri创建的媒体播放器为null,没有找到文件。 如果我尝试在计算机资源管理器中看到的路径,也一样。
有谁知道为什么它找不到文件? 我尝试在开始时删除“/”,添加“mnt”以查看我是否遗漏了路径中的某些内容,但似乎没有任何效果。
感谢您的时间!
我要检查的代码只是一个函数
public void ejecutar(View v) {
Uri datos = Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/gato.mp3");
MediaPlayer mp = MediaPlayer.create(this, datos);
if (mp != null) {
mp.start();
}
else{ tv1.setText(datos.toString());}
其中tv1是一个textview所以我可以看到uri指向的路径。
我正在尝试播放存储在SD卡中的mp3文件
您无权访问可移动存储上的任意文件系统位置。
Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/gato.mp3")
在组装路径时切勿使用连接。 而且,我不确定create(Context, Uri)
适用于file
Uri
方案。 我建议您使用:
File media=new File(Environment.getExternalStorageDirectory(), "gato.mp3");
然后使用setDataSource(media.getAbsolutePath())
。 您还需要READ_EXTERNAL_STORAGE
或WRITE_EXTERNAL_STORAGE
权限,这也意味着您需要处理运行时权限 。
但是
Environment.getExternalStorageDirectory().getPath()
让我到/storage/emulated/0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.