我有一个id存储在类似" R.raw.de3"的str中,我需要以int形式恢复它的id才能在MediaPlayer类上设置它,不管怎样我试过这个int id总是返回0。
我已经尝试了
rawIdStr = "R.raw.de3"; or rawIdStr = "R.raw.de3.mp3";
与
int rawId = getResources().getIdentifier(rawIdStr, "id", getPackageName());
或
int rawId = getResources().getIdentifier(rawIdStr, "raw", packageName);
也是
int rawId = R.raw.class.getField(rawIdStr).getInt(null);
什么也没有,为什么这不起作用?
答案 0 :(得分:1)
不要使用整个"R.raw.de3"
,只使用不带R的文件名和资源类型标识符。
尝试
rawIdStr = "de3";
int rawId = getResources().getIdentifier(rawIdStr, "raw", packageName);
答案 1 :(得分:0)
要打开原始资源,请使用以下方法检查:
Resources.openRawResource(R.raw.filename)
这将为您提供一个输入流,您可以将其传递给媒体播放器。
有关详细信息,请参阅:
https://developer.android.com/guide/topics/resources/providing-resources.html
详细信息如下: https://developer.android.com/reference/android/content/res/Resources.html#openRawResource(int)