Остановить MediaPlayer в определенный момент - PullRequest
1 голос
/ 07 января 2012

Привет, ребята. В какой-то момент я пытаюсь остановить медиаплеер, но у меня это не работает. Мой код сообщает мне, что не так в этом коде.

int Str = 36000;
                int Stop = 51000;
                mediaPlayer.seekTo(Str);
                mediaPlayer.start();
                if(mediaPlayer.getCurrentPosition() == Stop)
                {
                    mediaPlayer.stop();
                }

Медиаплеер запускается в указанной точке ион продолжает играть, когда я его отлаживаю, доходит до условия if, и он все еще продолжает воспроизводиться, но ошибка (насколько я знаю) не отображается, я играл с while, если условие и отладка построчно, но не могу понять,Пожалуйста, помогите мне Спасибо за ваше время

Ответы [ 2 ]

2 голосов
/ 07 января 2012

Попытайтесь ограничить время:

while(mediaPlayer.getCurrentPosition() >= Str && mediaPlayer.getCurrentPosition() <= Stop)
{
}

Однако, используйте это с умом, вы можете что-то заморозить и в конечном итоге оказаться в ANR.

Вы считаете полезным использовать задержку Thread или Handler на 1000 мс, но, как упоминалось @ dhaag23, вряд ли получится точный Stop

1 голос
/ 07 января 2012

Команды медиаплеера, как правило, выполняются асинхронно, поэтому маловероятно, что вы получите текущую позицию в точности как «стоп». Может быть, вы хотите изменить свой тест на:

if(mediaPlayer.getCurrentPosition() >= Stop)
...