【问题标题】:play video when mouse is idle. and stop video when mouse is clicked/move JAVAFX鼠标空闲时播放视频。并在单击鼠标/移动 JAVAFX 时停止视频
【发布时间】:2018-06-28 17:03:58
【问题描述】:

我正在尝试实现一个功能,当没有鼠标点击或鼠标移动时,程序会全屏播放视频,比如 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();

【问题讨论】:

    标签: java video mouseevent mediaview


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-06-03
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      相关资源
      最近更新 更多