@Override protected void initViews() { mControllerTopView = (RelativeLayout) findViewById(R.id.controller_top_layout); mBackLayout = (RelativeLayout) findViewById(R.id.back_layout); mTitleTextView = (TextView) findViewById(R.id.title_text_view); mControllerBottomView = (RelativeLayout) findViewById(R.id.controller_bottom_layout); mSeekBar = (MediaPlayerVideoSeekBar) findViewById(R.id.seekbar_video_progress); mPlaybackImageView = (ImageView) findViewById(R.id.video_playback_image_view); mCurrentTimeTextView = (TextView) findViewById(R.id.short_video_small_current_time_tv); mTotalTimeTextView = (TextView) findViewById(R.id.short_video_small_duration_time_tv); mSeekBar.setMax(MAX_VIDEO_PROGRESS); mSeekBar.setProgress(0); }
public void updateVideoProgress(float percentage) { if (percentage >= 0 && percentage <= 1) { int progress = (int) (percentage * mSeekBar.getMax()); if (!mVideoProgressTrackingTouch) mSeekBar.setProgress(progress); long curTime = mMediaPlayerController.getCurrentPosition(); long durTime = mMediaPlayerController.getDuration(); if (durTime > 0 && curTime <= durTime) { mCurrentTimeTextView.setText(MediaPlayerUtils.getVideoDisplayTime(curTime)); mTotalTimeTextView.setText(MediaPlayerUtils.getVideoDisplayTime(durTime)); } } }
@Override protected void initListeners() { mBackLayout.setOnClickListener(this); mTitleTextView.setOnClickListener(this); mPlaybackImageView.setOnClickListener(this); mSeekBar.setOnSeekBarChangeListener( new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { mVideoProgressTrackingTouch = false; int curProgress = seekBar.getProgress(); int maxProgress = seekBar.getMax(); if (curProgress >= 0 && curProgress <= maxProgress) { float percentage = ((float) curProgress) / maxProgress; int position = (int) (mMediaPlayerController.getDuration() * percentage); mMediaPlayerController.seekTo(position); // mMediaPlayerController.start(); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { mVideoProgressTrackingTouch = true; } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { if (isShowing()) { show(); } } } }); }