Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 访问手机上的资源/原始资源时出现问题。。。在emulator中工作良好_Java_Android_Resources - Fatal编程技术网

Java 访问手机上的资源/原始资源时出现问题。。。在emulator中工作良好

Java 访问手机上的资源/原始资源时出现问题。。。在emulator中工作良好,java,android,resources,Java,Android,Resources,我试图以编程方式访问/res/raw文件夹中的资源(特别是…mp3文件)。在emulator中,以下模板适用于我 Uri uri = Uri.parse("android.resource://com.foo.bar/raw/name_of_resource"); MediaPlayer mp3 = MediaPlayer.create(this, uri); 在实际手机上,MediaPlayer.create()方法返回null。有什么好处?有没有更好的方式以编程方式访问资源 附言 我没有使

我试图以编程方式访问
/res/raw
文件夹中的资源(特别是…mp3文件)。在emulator中,以下模板适用于我

Uri uri = Uri.parse("android.resource://com.foo.bar/raw/name_of_resource");
MediaPlayer mp3 = MediaPlayer.create(this, uri);
在实际手机上,
MediaPlayer.create()
方法返回null。有什么好处?有没有更好的方式以编程方式访问资源

附言

我没有使用MediaPlayer.create(这是资源的R.raw.name)是有原因的。在我的特殊情况下,对我来说,生成资源的名称要比计算资源的
id
容易得多。(也就是说,我可以相当容易地计算出资源的
字符串
名称,\u,但是推断实际的
整数id
将需要更多的工作和更多的
switch
语句

有没有更好的方式以编程方式访问资源

使用
MediaPlayer
上的静态
create()
方法

在我的特殊情况下,对我来说,生成资源的名称要比计算资源的id容易得多


使用
getResources().getIdentifier()
获取您的资源ID。

可能是权限问题?我认为仿真器比实际设备提供更多访问权限。使用反射如何?我不认为这是权限问题。如果我给程序播放任意mp3,它工作正常。您建议我如何使用反射?谢谢您的回复。正如您所建议的,我没有对getResources().getIdentifier()进行了ried,但没有任何效果(尽管它仍然可以在模拟器上工作)。我不太清楚您所说的“使用静态创建()是什么意思MediaPlayer上的方法。我在原始帖子中使用的方法是静态的。你能详细说明一下吗?因为代码在模拟器中工作,我感觉它很好。还有其他原因吗?我的手机无法访问原始资源吗?@dfetter88:下面是一个示例项目,它可以播放存储为原始资源的音频:--在har上工作良好谢谢你的帮助。我最终恢复到一个早期版本并进行了一些重写。现在一切都正常了,尽管我仍然不知道我最初哪里出了问题。