我正在尝试以编程方式访问/res/raw
文件夹中的资源(特别是... mp3文件)。在模拟器中,以下模板适用于我。
Uri uri = Uri.parse("android.resource://com.foo.bar/raw/name_of_resource");
MediaPlayer mp3 = MediaPlayer.create(this, uri);
在实际的手机上,MediaPlayer.create()
方法返回null。是什么赋予了?是否有更好的方式以编程方式访问资源?
P.S。
我没有使用MediaPlayer.create(this, R.raw.name_of_resource)
是有原因的。在我的特定情况下,生成资源名称要比找出资源的id
容易得多。 (即我可以相当容易地找出String
name_of_resource
,但推断实际integer id
R.raw.name_of_resource
会涉及更多工作和更多switch
语句
答案 0 :(得分:0)
是否有更好的方式以编程方式访问资源?
在create()
上使用静态MediaPlayer
方法。
在我的特殊情况下,生成资源名称要比找出资源的id容易得多。
使用getResources().getIdentifier()
获取您的资源ID。