将SeekBar连接到MediaPlayer无法正常工作

时间:2013-08-18 21:10:17

标签: java android android-mediaplayer seekbar

我一直在按照教程实施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

现在问题是教程中没有提到哪里可以调用这个run方法?我尝试在MediaPlayer启动后立即调用它,但它无效。

2 个答案:

答案 0 :(得分:1)

这显然意味着放在一个Thread对象中 - 它是一个无限循环,每次睡眠一秒钟。它无法进入UI线程,也不会冻结您的应用。

答案 1 :(得分:0)

我对此做了一个完全不同的方法并且它有效。以下是我现在的表现:

Runnable run = new Runnable(){

    @Override
    public void run() {
        seekBarUpdate();
    }

};

public void seekBarUpdate(){
    sBar.setMax(player.getDuration());
    sBar.setProgress(player.getCurrentPosition());
    seekHandler.postDelayed(run, 25);
}