2016-12-28 54 views
1

我想等到视频的指定时间后再执行smthg。如何使它在Android? handler.postDelaywait评论是不明智的,我认为。Android如何等待视频的指定时间

+0

_等待视频的指定时间_不要忘记视频可能会暂停,如果这是来自互联网,它可能会停下来下载其余的视频,... – AxelH

回答

1

您可以使用countDownTimer

Switch(v.getId()){ 

    case R.id.Yourid1: 

    CountDownTimer test= new CountDownTimer(3000,1000) { //count down from 3 sec to 1 sec 

      @Override 
      public void onTick(long millisUntilFinished) { 
       //do some thing after starting timer 

      } 

      @Override 
      public void onFinish() { 

      // do something after timer is finished 
      } 
     }; 


     test.start(); 

break; 

    case R.id.YourId2: 


     CountDownTimer test1= new CountDownTimer(3000,1000) { //count down from 3 sec to 1 sec 

      @Override 
      public void onTick(long millisUntilFinished) { 
       //do some thing after starting timer 

      } 

      @Override 
      public void onFinish() { 

      // do something after timer is finished 
      } 
     }; 


     test1.start(); 

     } 

break; 
+0

它只能运行一次。但我不能更多地使用该代码。如何在每种情况下使用switch/case。我试过test2,test3 ...不工作 – mehmet

+0

如果在每个开关柜中有不同的事情要做,那么在每种情况下写不同的倒计时器,我将更新我的代码 – Redman

+0

在Redman提出的定时器回调onTick上,调用'MediaPlayer'实例上的'getCurrentPosition'来找出视频中的实际位置。 – selbie

1

假设你正在使用android.media.MediaPlayer类播放视频。

有些方法可以帮助您.getCurrentPosition()(返回以毫秒为单位的当前时间)和.getDuration()(返回以毫秒为单位的视频持续时间)。您可以每秒(或任何其他时间间隔).getCurrentPosition()调用,当它返回指定的时间时,您可以执行所需的操作。

同样的技术可以应用于Vitamio播放器或ExoPlayer,或任何其他能够返回当前位置的技术。