2014-05-30 1 views
0

У меня есть несколько сырых музыкальных файлов, которые я хотел бы воспроизвести для одного MediaPlayer. После многих попыток я смог заставить MediaPlayer переключаться между песнями. Однако один из моих сырых файлов продолжает возвращать исключение FileNotFoundException. Это bizzare для меня, потому что я импортировал его в свою сырую папку, как и все другие файлы, которые работают. Я также получаю доступ к нему точно так же, как и другие файлы.Доступ к сырым файлам для MediaPlayer

Вот код, где я доступ к файлу (Это называется 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 

Я пробовал очистить/уничтожить файл, повторно импортировать его и даже использовать совершенно другой файл и имя, но кажется, что всякий раз, когда я добавляю новый файл, теперь он больше не работает ,

Любая помощь была бы принята с благодарностью!

+0

Итак, я выяснил, в чем проблема, хотя я не совсем уверен, почему у меня возникла проблема. Кажется, что я получу эту ошибку для любого файла в raw, который меньше 1 МБ. Мне удалось обойти его, зациклив мои звуковые файлы, пока они не превысят 1 МБ. Тем не менее, я пытаюсь реализовать звуковые эффекты с помощью SoundPool. Эти звуковые эффекты, естественно, очень малы. Все они меньше 1 МБ, и все они дают мне ту же ошибку, что и раньше. –

ответ

0

Eureka! Я знал, что сделал какую-то глупую ошибку!

Файлы, которые у меня были в raw, не были правильно названы. Они должны быть названы «title.mp3», но вместо этого я только что назвал их «название», так как при доступе вы усечь тип файла в конце, например:

R.raw.title 

Это, должно быть, меня смутило, и я закончил усечения мои имена в моем исходном каталоге.

Я все еще немного не уверен, почему мое неправильное соглашение об именах все еще работает для файлов более 1 МБ.

Смежные вопросы