如何在Android中将Seekbar作为seekBar以及progressBar同时使用?
问题描述:
我打算为我的应用程序编写自定义媒体控制器。我打算使用seekbar来寻找和展示进展。试图实现这一点。如何在Android中将Seekbar作为seekBar以及progressBar同时使用?
有没有人有这样的实施,或者我在错误的道路上?
答
最后我想通了!
,我想出了这样的解决方案:
首先设置最大进步搜索条的视频
videoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
seekBar.setMax(videoView.getDuration());
seekBar.postDelayed(onEverySecond, 1000);
}
});
这可运行将继续更新进度的时间:
private Runnable onEverySecond=new Runnable() {
@Override
public void run() {
if(seekBar != null) {
seekBar.setProgress(videoView.getCurrentPosition());
}
if(videoView.isPlaying()) {
seekBar.postDelayed(onEverySecond, 1000);
}
}
};
然后进行搜索条的setOnSeekBarChangeListener可以用来把用户寻求在媒体上。通过使用 FROMUSER布尔我们可以辨认出它是否是一个回调,由于用户的交互或
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if(fromUser) {
// this is when actually seekbar has been seeked to a new position
videoView.seekTo(progress);
}
}
});
答
您设置了seconday progress。
不,你在正确的轨道上。它非常适合显示诸如下载进度和流(媒体)的当前位置之类的内容。
+0
感谢您的答复。 但我正在使用二级进度显示流量。 我在下面发表我的想法。 –
太棒了!但当视频结束,我想播放'videoView.start()'它再次seekBar不工作,如何解决这个问题? –