Java 为什么';我的视频时间表不工作?

Java 为什么';我的视频时间表不工作?,java,media-player,changelistener,Java,Media Player,Changelistener,我试图制作一个视频时间轴,带有一个滑块(改变屏幕上出现的秒数),但它不起作用。我的问题是,上述方法不起作用。我真的不知道为什么,我在很多教程中看到了这段代码,但我不能使用 错误消息是:“找不到合适的方法addListener” 这是有问题的方法: mediaPlayer.currentTimeProperty().addListener(new ChangeListener<Duration>() { @Override

我试图制作一个视频时间轴,带有一个滑块(改变屏幕上出现的秒数),但它不起作用。我的问题是,上述方法不起作用。我真的不知道为什么,我在很多教程中看到了这段代码,但我不能使用

错误消息是:“找不到合适的方法addListener”

这是有问题的方法:

mediaPlayer.currentTimeProperty().addListener(new ChangeListener<Duration>() {
                @Override
                public void changed(ObservableValue<? extends Duration> observable, Duration oldValue, Duration newValue) {
                    seekSlider.setValue(newValue.getSeconds());
                }
            });

package amedia;

import java.io.File;
import java.net.URL;
import java.time.Duration;
import java.util.ResourceBundle;
import javafx.beans.InvalidationListener;
import javafx.beans.Observable;
import javafx.beans.binding.Bindings;
import javafx.beans.property.DoubleProperty;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.FileChooser;

public class FXMLDocumentController implements Initializable {

    private MediaPlayer mediaPlayer;


    private String filePath;

    @FXML
    private Label label;

    @FXML
    private MediaView mediaView;

    @FXML
    private Slider slider;

    @FXML
    private Slider seekSlider;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        FileChooser fileChooser = new FileChooser();
        FileChooser.ExtensionFilter filter = new FileChooser.ExtensionFilter("Select a file (*.mp4)", "*.mp4");
        fileChooser.getExtensionFilters().add(filter);
        File file = fileChooser.showOpenDialog(null);
        filePath = file.toURI().toString();

        if (filePath != null) {
            Media media = new Media(filePath);
            mediaPlayer = new MediaPlayer(media);
            mediaView.setMediaPlayer(mediaPlayer);

            DoubleProperty width = mediaView.fitWidthProperty();
            DoubleProperty height = mediaView.fitHeightProperty();

            width.bind(Bindings.selectDouble(mediaView.sceneProperty(), "width"));
            height.bind(Bindings.selectDouble(mediaView.sceneProperty(), "height"));

            slider.setValue(mediaPlayer.getVolume() * 100);

            slider.valueProperty().addListener(new InvalidationListener() {
                @Override
                public void invalidated(Observable observable) {
                    mediaPlayer.setVolume(slider.getValue()/100);     
                }
            });

            mediaPlayer.currentTimeProperty().addListener(new ChangeListener<Duration>() {
                @Override
                public void changed(ObservableValue<? extends Duration> observable, Duration oldValue, Duration newValue) {
                    seekSlider.setValue(newValue.getSeconds());
                }
            });

            mediaPlayer.play();
        }

    }

    @FXML
    private void pauseVideo(ActionEvent event) {
        mediaPlayer.pause();
    }

    @FXML
    private void playVideo(ActionEvent event) {
        mediaPlayer.play();
        mediaPlayer.setRate(1.0);
    }
    @FXML
    private void stopVideo(ActionEvent event) {
        mediaPlayer.stop();
    }
    @FXML
    private void fastVideo(ActionEvent event) {
        mediaPlayer.setRate(1.5);
    }
    @FXML
    private void fasterVideo(ActionEvent event) {
        mediaPlayer.setRate(2.5);
    }
    @FXML
    private void slowVideo(ActionEvent event) {
        mediaPlayer.setRate(0.75);
    }
    @FXML
    private void slowerVideo(ActionEvent event) {
        mediaPlayer.setRate(0.5);
    }
    @FXML
    private void exit(ActionEvent event) {
        System.exit(0);
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    } 

}
mediaPlayer.currentTimeProperty().addListener(新的ChangeListener()){
@凌驾

public void已更改(observeValue您导入了错误的持续时间类:

import java.time.Duration;
您需要导入以下内容:


错误的全文是什么?这是错误代码:
import javafx.util.Duration;