【发布时间】:2014-06-18 03:09:39
【问题描述】:
我要解决的问题是需要播放音频文件的活动。大多数文件将由用户创建(并保存到外部存储中),因此使用以下代码(基于 Google 的示例代码)进行播放:
MediaPlayer mPlayer = new MediaPlayer();
mPlayer.setDataSource(filename);
mPlayer.prepare();
mPlayer.start();
不过,一些音频文件将包含在应用程序中,通常使用以下代码播放:
MediaPlayer mPlayer = MediaPlayer.create(getBaseContext(), R.raw.filename);
mPlayer.prepare();
mPlayer.start();
问题是我希望能够像播放用户创建的文件一样播放原始文件夹中的音频文件,因为我不一定知道需要哪个。我尝试在 raw 文件夹中获取音频文件的 URI 并使用以下代码播放:
Uri uri = Uri.parse("android/resource://com.my.package/" + R.raw.filename);
MediaPlayer mPlayer = new MediaPlayer();
mPlayer.setDataSource(uri.toString());
mPlayer.prepare();
mPlayer.start();
但是什么也没发生。没有错误消息,没有播放音频。
我概述了我认为最简单的解决方案,但如果它完成任务,我愿意走另一条路。非常感谢任何帮助。
【问题讨论】:
-
我确定您现在已经可以使用它了,但是您应该使用“android.resource”,而不是“android/resource”。
标签: android android-mediaplayer