Android: медиаплеер ушел из-за необработанных событий

Мне нужно получить продолжительность аудиофайла для серии голосовых объявлений, которые нужно воспроизвести из приложения. Я добавил аудиофайлы в качестве ресурсов, и они отлично воспроизводятся. Приведенный ниже пример кода на самом деле отлично работает по своему прямому назначению: он возвращает продолжительность аудиофайлов.

Вот код:

float getDurationOfAudioResource(LocationEnum loc, Context context){
    float  duration = 0;
    try {
        MediaPlayer mp; 
        mp = MediaPlayer.create(context, getAudioResource(loc));
        duration = mp.getDuration();
        mp.release();
        mp = null;
    }
    catch (IllegalStateException e) {e.printStackTrace(); logError(25, "TestDescItem:Fault::Could not open mediaplayer object with audio resource.");} 
    return duration;
}

Вот что странно. Этот код вызывается в основном действии, которое подготавливает набор звуковых инструкций для данного теста. В этом действии нет ошибок. Но как только вызывается вторая активность, я получаю длинную строку ошибок на logcat.

03-07 13:23:43.820: I/ActionLogger(21435): GenTest_Info_Test #0 successfully created.
03-07 13:23:43.830: I/ActionLogger(21435): GenTest_Info_Test #1 successfully created.
03-07 13:23:43.840: I/ActionLogger(21435): GenTest_Info_Test #2 successfully created.
03-07 13:23:43.850: I/ActionLogger(21435): GenTest_Info_Test #3 successfully created.
<snip>
03-07 13:23:43.910: I/ActionLogger(21435): GenTest_Info_all tests successfully created.
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.260: W/MediaPlayer(21435): mediaplayer went away with unhandled events
03-07 13:23:47.270: W/MediaPlayer(21435): mediaplayer went away with unhandled events
<snip>

Я прошел один шаг до конца основного задания (без ошибок) и с первой строки второго задания. Ошибки определенно выбрасываются между действиями.
Кроме того, если я закомментирую восемь строк блока try (таким образом, вернув только ноль), ошибок logcat удастся избежать. Когда я восстанавливаю восемь строк, ошибки возвращаются. Я просмотрел документацию и провел поиск в Интернете, и я считаю, что правильно создаю, выпускаю и уничтожаю объект медиаплеера, поэтому я не понимаю, почему я получаю сообщение об ошибке. Тем не менее, я должен делать что-то не так.Есть идеи?

Спасибо,

Кевин

58
задан Hephaestus 7 March 2012 в 21:37
поделиться