且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Android SeekBar setProgress 导致我的 MediaPlayer 跳过

更新时间:2023-12-05 23:20:28

我认为问题在于,当您调用 setProgress() 时,会触发 onProgressChanged 事件.

I think the problem is that when you call the setProgress(), the onProgressChanged event is fired.

监听器(OnSeekBarChangeListener)有一个方法public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser).在这里,您应该测试侦听器是由用户操作还是从代码触发.在您的情况下, fromUser 变量应为 false.

The listener (OnSeekBarChangeListener) have a method public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser). Here you should test if the listener was fired by a user action or from code. In your case, the fromUser variable should be false.

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    if(fromUser){
           player.seekTo(x);
        }
        else{
         // the event was fired from code and you shouldn't call player.seekTo()
        }
}