访问MediaPlayer的原始文件

时间:2014-05-30 20:35:18

标签: android android-mediaplayer android-resources

我有一些原始音乐文件,我希望单个MediaPlayer播放。经过多次尝试,我能够让MediaPlayer在歌曲之间切换。但是,我的一个原始文件不断返回FileNotFoundException。这对我来说很棒,因为我将它导入我的原始文件夹就像所有其他有效的文件一样。我也以与其他文件完全相同的方式访问它。

这是我正在访问该文件的代码(它叫做victory_music):

AssetFileDescriptor afd = CPU.rawToFile(Results.this, R.raw.victory_music);

这是我正在访问其他文件的代码(它实际上在哪里工作):

AssetFileDescriptor afd = CPU.rawToFile(Results.this, R.raw.defeat_music);

mPlayer = MediaPlayer.create(MainMenu.this, R.raw.battle_music);

这是我得到的错误:

05-30 16:20:24.439: E/AndroidRuntime(3151): java.lang.RuntimeException: Unable to start        activity ComponentInfo{com.my.app/com.my.app.MainMenu}: android.content.res.Resources$NotFoundException: File res/raw/you_win from drawable resource ID #0x7f040003

我尝试过清理/构建,删除文件并重新导入文件,甚至使用完全不同的文件和名称,但似乎每当我添加新文件时它现在都不再起作用了。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

尤里卡!我知道我犯了一些愚蠢的错误!

我在raw中的文件没有正确命名。它们应该被命名为#34; title.mp3"但我只是将它们命名为#34; title"因为在访问时会截断末尾的文件类型,例如:

R.raw.title

这一定让我很困惑,最后我在原始目录中截断了我的名字。

我仍然不确定为什么我错误的命名约定仍适用于超过1MB的文件。