2013-12-06 2 views
2

Я ищу способ получить обратный вызов, когда проигрывается VideoView, что указывает на прогресс видео. Что-то вроде описано here, но для VideoView. Опрос текущего хода каждой фиксированной продолжительности кажется плохим решением ...Обратный звонок в ходе выполнения VideoView

Есть ли какой-нибудь слушатель, который я пропустил?

+0

нет, вы ничего пропустить вратаря. Что случилось с опросом? – pskink

+0

Ну, это не кажется логичным, компонент должен уведомлять других о своих изменениях статуса, а не наоборот ... –

+0

Посмотрите мое решение по аналогичному вопросу: [Получите время выполнения видео, воспроизводимого при видеообъявлении?] (Http : //stackoverflow.com/a/33370149/925504) – Nolesh

ответ

7

Вы можете использовать нить, чтобы получить прогресс.

mRunnable = new Runnable() { 
    public void run() {  
     Log.i(TAG, "::run: getCurrentPosition = " + mVideoView.getCurrentPosition());  
     if(mVideoView.isPlaying()){ 
      mHandler1.postDelayed(this, 250);     
     } 
    } 
}; 
mHandler1.post(mRunnable); 
+0

какой поток вы говорите? – pskink

1
Runnable onEverySecond=new Runnable() { 
      public void run() { 
       if(seekbar != null) { 
        seekbar.setProgress(mPlayer.getCurrentPosition()); 
       } 
       if(mPlayer.isPlaying()) { 
        System.out.println("inside runnable :::::: is playing "); 
        seekbar.postDelayed(onEverySecond, 10); 
       } 
      } 
     }; 
       seekbar.postDelayed(onEverySecond, 10); 
Смежные вопросы