Java MediaPlayer在使用处理程序时滞后
在我的Android应用程序中,我使用MediaPlayer和SeekBar。我想在有东西播放时自动更新seekbar。我有这个代码,但它每1秒延迟一次。我怀疑它应该在另一个线程中运行,但我不知道如何编写它。提前谢谢Java MediaPlayer在使用处理程序时滞后,java,android,multithreading,Java,Android,Multithreading,在我的Android应用程序中,我使用MediaPlayer和SeekBar。我想在有东西播放时自动更新seekbar。我有这个代码,但它每1秒延迟一次。我怀疑它应该在另一个线程中运行,但我不知道如何编写它。提前谢谢 private void startPlayProgressUpdater() { seekBar.setProgress(mediaPlayer.getCurrentPosition()); if (mediaPlayer.isPlaying()) {
private void startPlayProgressUpdater() {
seekBar.setProgress(mediaPlayer.getCurrentPosition());
if (mediaPlayer.isPlaying()) {
Runnable notification = new Runnable() {
public void run() {
startPlayProgressUpdater();
}
};
handler.postDelayed(notification, 1000);
} else {
mediaPlayer.pause();
}
}
问题解决了。我不得不从onProgressChanged()中删除startProgressUpdater(),并将其放入onStopTrackingTouch()。这似乎是seekBar的问题,它会导致延迟。我试着向mediaPlayer.getCurrentPosition()敬酒,但没有任何延迟。有什么建议吗?你是怎么解决的?我也有同样的问题。