我已经将github上的this项目实施到了我的项目中。
我面临以下问题:
在播放视频时,尽管我的onBufferingUpdate
方法中使用了以下代码,缓冲的搜索栏仍未显示
@Override
public void onBufferingUpdate(int progress) {
if (progress != 0){
bottom_seek_progress.setSecondaryProgress(progress);
}
}
尽管onStopTrackingTouch
TextView
已更新,但是time
方法不会将视频跳过到新的搜索栏位置。下面是方法
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Log.i(TAG, "bottomProgress onStopTrackingTouch [" + this.hashCode() + "] ");
MediaPlayerManager.instance().startProgressTimer();
ViewParent vpup = getParent();
while (vpup != null) {
vpup.requestDisallowInterceptTouchEvent(false);
vpup = vpup.getParent();
}
if (MediaPlayerManager.instance().getPlayerState() != MediaPlayerManager.PlayerState.PLAYING &&
MediaPlayerManager.instance().getPlayerState() != MediaPlayerManager.PlayerState.PAUSED)
return;
long time = (long) (seekBar.getProgress() * 1.00 / 100 * MediaPlayerManager.instance().getDuration());
MediaPlayerManager.instance().seekTo(time);
Log.i(TAG, "seekTo " + time + " [" + this.hashCode() + "] ");
}
PS:我的onProgressUpdate
方法如下
@Override
public void onProgressUpdate(final int progress, final long position, final long duration) {
post(new Runnable() {
@Override
public void run() {
bottom_seek_progress.setProgress(progress);
current.setText(Utils.stringForTime(position));
total.setText(Utils.stringForTime(duration));
}
});
}
和我的OnProgressChanged
方法如下:
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
long duration = MediaPlayerManager.instance().getDuration();
current.setText(Utils.stringForTime(progress / 100 * duration));
}
}
简而言之,我的问题是我在主搜索栏的顶部看不到辅助缓冲栏,并且当视频被跳过时,它不会从新的搜索栏位置继续播放。
希望我已经明确了我的问题。
请告诉我我要去哪里错了?