javafx视频进度条的实现
首先,我们假设有一个进度条和一个label来表示视频时间
@FXML
Slider processSD;
@FXML
Label timeLB;
我们首先需要在播放器创建的时候就注册一个监听器:
mediaPlayer.currentTimeProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue extends Duration> observable, Duration oldValue, Duration newValue) {
updateTime();
}
});}
这个监听器在每次系统时间变化都会被调用
private String formatTime(Duration elapsed, Duration duration) {
//将两个Duartion参数转化为 hh:mm:ss的形式后输出
int intElapsed = (int) Math.floor(elapsed.toSeconds());
int elapsedHours = intElapsed / (60 * 60);
int elapsedMinutes = (intElapsed - elapsedHours * 60 * 60) / 60;
int elapsedSeconds = intElapsed - elapsedHours * 60 * 60 - elapsedMinutes * 60;
if (duration.greater