Android VideoView进度回调

Android VideoView进度回调,android,listener,android-videoview,Android,Listener,Android Videoview,我正在寻找一种在播放VideoView时获得回调的方法,以指示视频进度。类似于描述的内容,但适用于视频视图。每隔固定时间轮询当前进度似乎是一个糟糕的解决方案 是否存在任何我错过的侦听器?您可以使用线程获取进度 mRunnable = new Runnable() { public void run() { Log.i(TAG, "::run: getCurrentPosition = " + mVideoView.getCurrentPosition());

我正在寻找一种在播放
VideoView
时获得回调的方法,以指示视频进度。类似于描述的内容,但适用于
视频视图
。每隔固定时间轮询当前进度似乎是一个糟糕的解决方案


是否存在任何我错过的侦听器?

您可以使用线程获取进度

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

不,你没有错过任何东西。轮询有什么问题吗?好吧,它感觉不符合逻辑,组件应该通知其他人其状态更改,而不是相反……请参阅我对类似问题的解决方案:@Nolesh好吧,这与近两年来接受的答案几乎相同;-)
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);