Есть MediaPlayer и аудиозапись, которую нужно воспроизвести, в определенные моменты времени во время воспроизведения аудиозаписи мне нужно переключать слайды в ViewPager, как получить CallBack из MediaPlayer, что определенный момент времени наступил? Либо возможно посоветуете какие-то другие варианты.
Ответ
Решение, которое мне помогло:
CountDownTimer timer;
int timeStampIterator;
int[] timeStamp = new int[5]; // метки с временем
void play() {
mPlayer.start();
timer = new CountDownTimer(mPlayer.getDuration() - mPlayer.getCurrentPosition(), 1000) {
@Override
public void onTick(long millisUntilFinished) {
int timeSpends = mPlayer.getCurrentPosition();
if (timeSpends == timeStamp[timeStampIterator]) {
mPager.setCurrentItem(LabelPosition.get(timeStampIterator))));
timeStampIterator++;
}
}
@Override
public void onFinish() {
}
}.start();
}
void pause() {
mPlayer.pause();
timer.cancel();
timer = null;
}
void stop() {
mPlayer.stop();
timer.cancel();
timer = null;
timeStampIterator = 0;
}
Комментариев нет:
Отправить комментарий