Closed Pengchengistaken closed 7 years ago
你好,因为QSVideoViewHelp内部有个handler会定时更新seekbar,外部滑动调节进度的时候需要自己调用停止一下,调节完毕再启动... 262-279行代码 问题关闭是解决了吧- -
谢谢解答,我今天早上看了下代码,发现你说的这个地方。 我原来直接用seekTo,应该用seekBar的setProgress,感谢!
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d("onKey", "onKeyDown, keyCode is " + keyCode);
int progress = seekBar.getProgress();
switch (keyCode){
case KeyEvent.KEYCODE_ENTER:
case KeyEvent.KEYCODE_DPAD_CENTER:
if (isPlaying()){
pause();
}else{
play();
}
return false;
case KeyEvent.KEYCODE_DPAD_RIGHT:
onStartTrackingTouch(seekBar);
//DELTA is 5 for example
if(progress + 5 > seekBar.getMax()) {
seekBar.setProgress(0);
}else {
seekBar.setProgress(progress + 5);
}
return false;
case KeyEvent.KEYCODE_DPAD_LEFT:
onStartTrackingTouch(seekBar);
progress = seekBar.getProgress();
if(progress - 5 < 0) {
seekBar.setProgress(0);
} else {
seekBar.setProgress(progress - 5);
}
return false;
default:
break;
}
return false;
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.d(" onKey", "onKeyUp, keyCode is " + keyCode);
switch (keyCode){
case KeyEvent.KEYCODE_DPAD_RIGHT:
case KeyEvent.KEYCODE_DPAD_LEFT:
onStopTrackingTouch(seekBar);
return false;
default:
break;
}
return false;
}
该问题是怎么引起的?
如果做在电视应用上,如何使用按键来进行快进快退呢? 我用onKeyDown,发现在进度条不显示的时候能够快进快退。但是如果进度条显示的时候,则会每500ms回到开始按按键的地方。
重现步骤
增加左右方向键的监听
报错信息
在seekbar显示的时候无法快进快退