【问题标题】:android - how to get path of mp3 stored in raw folderandroid - 如何获取存储在原始文件夹中的 mp3 路径
【发布时间】:2016-08-17 10:47:02
【问题描述】:

在搜索解决方案后,我从这个link 中发现可以检索如下路径:

使用资源 ID

语法:android.resource://[package]/[resource_id]

例如:Uri.parse("android.resource://com.my.package/" + R.raw.mp3filename);

这正是我想要的。问题是,我正在使用棒棒糖,但它不起作用。解析包/资源时,来自 Uri.parse 的路径将为空。有没有其他方法可以写这个,因为在我的 Song 类中,我只能访问 resourceId (R.raw.mp3filename)。

【问题讨论】:

  • “它似乎不起作用”——“它”是什么? “路径返回 null”——what 返回 null? Uri.parse()?
  • @CommonsWare 当我尝试解析上面的例子时它返回 null 路径
  • “路径为空”是什么意思? Uri 不是路径,就像 http://stackoverflow.com/questions/36816944/android-how-to-get-path-of-mp3-stored-in-raw-folder?noredirect=1#comment61206631_36816944 不是路径一样。你是说Uri.parse() 本身正在返回null?或者您是否尝试对 Uri 做某事(例如,在其上调用 getPath()),而 that 正在返回 null
  • 好吧,我现在有一个简单的问题:“是否可以使用 R.raw.mp3file 获取文件路径”以及如何获取? - 为了回答你的问题,关于我将如何处理 URI,是的,我正在尝试使用 Uri 实例调用 getPath() 方法,在我的情况下它返回 null。

标签: android android-resources


【解决方案1】:

是否可以使用 R.raw.mp3file 获取文件路径

不,因为它不是设备上的文件。它是您的开发机器硬盘上的一个文件。在设备上,它只是 APK 文件中的一个条目。

要么:

  • 以不涉及文件路径的其他方式做任何你想做的事情,或者

  • Resources 对象上使用openInputStream()(您可以通过getResources() 从任何Context 获取一个),并使用Java I/O 将该资源的内容复制到本地文件,比如internal storage

【讨论】:

  • 谢谢你的回答。我将在明天详细介绍。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 2014-05-19
相关资源
最近更新 更多