Мне нужно получить продолжительность аудиофайла для серии голосовых объявлений, которые необходимо воспроизвести из приложения.Я добавил аудио файлы в качестве ресурсов, и они воспроизводятся очень хорошо.Пример кода, приведенный ниже, на самом деле отлично работает по своему прямому назначению: он возвращает длительность аудиофайлов.
Вот код:
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 будут исключены.Когда я восстанавливаю восемь строк, ошибки возвращаются.Я копался в документации и искал в Интернете, и я считаю, что я правильно конструирую, выпускаю и уничтожаю объект медиаплеера, поэтому не могу понять, почему я получаю ошибку.Тем не менее, я должен делать что-то не так.Есть идеи?
Спасибо,
Кевин