[英]Connecting SeekBar to MediaPlayer isn't working
我一直在遵循一个教程,以实现对我的应用程序的SeekBar
,但它不起作用。 这就是我要尝试的方法。
public void run(){
int currentPosition = 0;
int total = player.getDuration();
sBar.setMax(total);
while (player.isPlaying()) {
try {
Thread.sleep(1000);
currentPosition = player.getCurrentPosition();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
sBar.setProgress(currentPosition);
}
}
sBar
是我声明为全局变量的SeekBar
。
现在的问题是,教程中没有提到可以在何处调用该运行方法? 我尝试在MediaPlayer
启动后立即调用它,但是它不起作用。
这显然是要放在Thread对象中的-一个无限循环,一次休眠一秒钟。 它无法进入UI线程,否则将冻结您的应用程序。
我对此采取了完全不同的方法,并且有效。 这是我现在做的事情:
Runnable run = new Runnable(){
@Override
public void run() {
seekBarUpdate();
}
};
public void seekBarUpdate(){
sBar.setMax(player.getDuration());
sBar.setProgress(player.getCurrentPosition());
seekHandler.postDelayed(run, 25);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.