Проблема, с которой я сталкиваюсь в данный момент, заключается в том, что моя пауза не всегда работает. У меня есть MediaPlayer в основном действии, который управляется через ActionBarSherlock и onClick-слушатели. MediaPlayer использует ArrayList с URL-адресами файлов MP3 (некоторые из них длиной 1сек).Android MediaPlayer pause
код Pause:
if (player.isPlaying()) {
if (player != null) {
player.pause();
swapPlayIcon(1);
isPaused = true;
pauseMenuButt.setVisible(false);
playMenuButt.setVisible(true);
}
}
swapPlayIcon (интермедиат) обрабатывает только видимость и рисуем свопы.
код Начало:
Iterator<Uri> iterUri = tracks.iterator();
while (iterUri.hasNext()) {
Uri tmpUri = iterUri.next();
try {
player.reset();
player.setDataSource(String.valueOf(tmpUri));
player.prepare();
player.start();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
EDIT
После более тестирования я обнаружил, что проблема появляется в "между" государством.
Что я имею в виду, когда мой MP3-файл длится 2 секунды, и я нажимаю на паузу, чтобы он не останавливался, потому что он просто закончил чтение одного файла и теперь перешел к следующему.
Я добавил:
} else {
pauseLocked = true;
}
, чтобы сделать паузу, если Постулаты и не приземляется в нем на все время тестирования. Так что я не уверен в проблеме «между ними», о которой я узнал ранее.
Не уверен, что такое ответ, но важно отметить, что у вас есть некоторый потенциал для исключения NullPointerException в этом первом блоке ... вы скажете if (player.isPlaying()) и THEN проверьте для игрока! = Null , Если игрок был нулевым, вы бы увидели NPE при вызове player.isPlaying(). Вы должны либо перенести нулевую проверку из инструкции isPlaying() if, либо полностью удалить ее. – Matt
Да, вы действительно правы:> – JakubW
Сначала воспроизведение не блокируется, поэтому вы будете циклически перемещаться по медиа так же быстро, как игрок может подготовить каждый медиапоток с вашего URL-адреса. Во-вторых, вы на [4.4 и пытаетесь играть в HLS] (http://code.google.com/p/android/issues/detail?id=63346&q=HLS&colspec=ID%20Type%20Status%20Owner%20Summary% 20Stars)? – dcow