Воспроизводить видео, когда мышь находится в режиме ожидания. и остановить видео при щелчке мышью / переместить JAVAFX
Я пытаюсь реализовать функцию, при которой программа воспроизводит видео в полноэкранном режиме, когда нет щелчка мышью или перемещения мыши, скажем, в течение 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 ответ
Возможно, проблема в том, что ваша задержка происходит каждый раз через 5 секунд после первого движения, но не обновляется до ее истечения. Вместо этого попробуйте использовать таймеры, чтобы установить таймер на 5 секунд для события перемещения мыши, для события истекшего таймера установить воспроизведение видео.