android怎么获取一个文件的地址

作业做一个音乐播放器,把歌曲放在res.raw的文件夹里面,老师演示的时候用的是R.raw.歌名来创建mediaplayer,多个歌曲怎么不用通过歌名获取这个地址呀?

阅读 3.8k
2 个回答

这种存粹学习性质的app实现不要考虑那么多,你不需要知道文件的具体地址.
既然是放到raw下,那么项目就会给他分配一个Id直接使用这个Id去获取相应的资源即可。
例如有个多个歌曲放在raw下song1.mp3,song2.mp3,song4.mp3,那你直接用R.raw.song1,R.raw.song2,R.raw.song4获取资源就行了。

我猜你是不是不记得获取项目自带资源的方法了,getResources().openRawResource(R.id.fileNameID)


另外 这个项目仅仅是个学习性质的,其实没什么卵用,当初我们也是这么做的。
结果项目只能播放自带的5首歌,而且打包生成的apk有600M,基本上全是歌占的。

raw 目录下的文件读取只能用文件名指定路径了,这些文件属于应用资源,其实不算真正意义上的 file 文件路径,Android APK打包后所有的资源文件都分配了固定的资源id,记录在 R.java 文件里,使用时,有应用 Resources 去匹配相应的 id 得到资源文件。raw 在安装后并不会呈现成某个文件夹,所以,不能通过遍历文件夹的方式来批量获取其下属的文件路径,都是以 R.raw.xxx 来转换匹配。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题