【发布时间】:2012-02-08 15:57:25
【问题描述】:
我正在尝试使用媒体播放器类播放 mp3。当我对 mp3 资源进行硬编码时,它可以工作,但是我希望资源来自字符串,而不是像 R.raw.mp3name 那样直接访问它。
Bundle bundle = getIntent().getExtras();
String Choice= bundle.getString("bundledChoice");
Uri myUri = Uri.parse("R.raw." + Choice);
mPlayer = MediaPlayer.create(activity.this, myUri);
mPlayer.start();
如果我将倒数第二行更改为 mPlayer = MediaPlayer.create(activity.this, R.raw.song) 它将起作用,问题是从捆绑包中获取的字符串动态创建资源 URI。
请指教。
【问题讨论】:
-
我想更好的表达方式是“我如何使用字符串引用资源@R.raw...”
-
R.raw 的资源是在 R 类的编译时生成的,该类为资源创建 ID。 URI.parse() 需要一个符合 RFC 2396 的编码 URI PARAMETER。 R.raw.song 是这首歌的 int ID。您可能想阅读类似stackoverflow.com/questions/559902/… 的内容并检查如何从 File 对象创建 Uri。谢谢
-
谢谢 Sergey,我用这篇文章得到了答案stackoverflow.com/questions/6679434/…
-
@brux,对不起,我在这里很昏暗,你能发布一个代码片段吗?我无法在您引用的帖子和解决问题之间建立联系...