鼠标空闲时播放视频。并在单击鼠标/移动JAVAFX时停止视频

时间:2018-06-28 17:03:58

标签: java video mouseevent mediaview

我正在尝试实现一项功能,该程序在没有鼠标单击或鼠标移动(例如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 :(得分:0)

可能是一个问题,您的延迟是在第一次移动后每5秒钟发生一次,但是在经过之前没有更新。请尝试使用计时器,以便将鼠标移动事件上的计时器设置为5秒,计时器经过事件上的计时器设置为播放视频。