воспроизводить видео, когда мышь находится в режиме ожидания. и остановить видео, когда мышь нажата / переместить JAVAFX - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь реализовать функцию, при которой программа воспроизводит видео в полноэкранном режиме, когда нет щелчка мышью или перемещения мыши, скажем, в течение x секунд. и останавливает видео и возвращается к предыдущей сцене при щелчке или перемещении мыши

в настоящее время у меня есть этот рабочий .. НО видео воспроизводится через 5 секунд, хотя я щелкаю и перемещаю мышь ... и я не могу найти решение о том, как закрыть видео и перейти к предыдущей сцене / fxml при щелчке мышью двигать ..

текущий код на момент написания:

для воспроизведения видео, когда мышь не используется:

PauseTransition delay = new PauseTransition(Duration.seconds(5));
delay.setOnFinished( event -> {
            try {
                Main.showVideo();
            } catch (IOException ex) {
                Logger.getLogger(UserMainPage2Controller.class.getName()).log(Level.SEVERE, null, ex);
            }
        } );
delay.play();

для показа видео (находится внутри моего основного класса):

public static void showVideo() throws IOException
        {


    File f = new File("C:\\vid\\saitama.mp4");

    Media media = new Media(f.toURI().toString());
    MediaView mv = new MediaView();

    MediaPlayer mp = new MediaPlayer(media);
    mv.setMediaPlayer(mp);

    FXMLLoader loader=new FXMLLoader();
    loader.setLocation(Main.class.getResource("page/videoPlayer.fxml"));
    mainLayout = loader.load();
    StackPane root=new StackPane();
    root.getChildren().add(mv);
    stage.setScene(new Scene(root,1000,1000));
    stage.setTitle("Video");
    stage.setFullScreen(true);

    stage.show();
    mp.play();


        }   

и я не совсем уверен, что поместить в мой класс VideoPlayercontroller: сейчас он пуст.

public class VideoPlayerController implements Initializable {


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



    }    

}

То, что я пытаюсь сделать, - это воспроизводить видео только тогда, когда мышь находится в режиме ожидания (не нажимается и не перемещается в течение x секунд) ... и закрывает видео, когда мышь перемещается или щелкает .. как например ..

if mouseclicked then Main.showPreviousScene();

1 Ответ

0 голосов
/ 28 июня 2018

Может быть проблема в том, что ваша задержка происходит каждый раз через 5 секунд после первого движения, но не обновляется до ее истечения. Вместо этого попробуйте использовать таймеры, чтобы установить таймер на 5 секунд для события перемещения мыши, для события истекшего таймера установить воспроизведение видео.

...