【发布时间】:2017-02-25 22:18:18
【问题描述】:
所以,一段时间以来,我一直在使用 JavaFX 开发媒体播放器应用程序。不幸的是,我遇到了一个我不知道如何解决的问题。我的 GUI 中应该显示视频进度的滑块无法正常工作。它结束得太早了。所以视频会一直播放到结束,但滑块已经停止了。
任何帮助将不胜感激。
Double time = player.getTotalDuration().toSeconds();
player.currentTimeProperty().addListener((ObservableValue<? extends Duration> observable, Duration oldValue, Duration newValue) -> {
slider.setValue(newValue.toSeconds());
});
slider.setOnMouseClicked((MouseEvent mouseEvent) -> {
player.seek(Duration.seconds(slider.getValue()));
});
【问题讨论】:
-
您是否使用
slider.setMax()/ 能够判断视频播放前的时长? -
不,我不是。我应该在播放之前获取视频的长度吗?
-
是的,
Slider的默认最大值为100,这意味着您的滑块似乎在 1 分 40 秒左右完成?您必须计算视频的秒数,然后使用它来设置滑块的最大值。 -
是的,但不是双倍时间 = player.getTotalDuration().toSeconds();应该这样做吗?
-
根据docs,如果持续时间为
UNKNOWN,toSeconds()返回NaN。