繁体   English   中英

如何uri到SD卡mp3文件

[英]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个内存存储位置:

  1. 内部存储位于/ storage / emulated / 0中。
  2. sdcard1位于/ storage / FE97-A11B中
  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_STORAGEWRITE_EXTERNAL_STORAGE权限,这也意味着您需要处理运行时权限

但是Environment.getExternalStorageDirectory().getPath()让我到/storage/emulated/0

这是Android SDK称为外部存储的典型路径,您在问题中称为内部存储。 SDK称为内部存储的内容是其他内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM