我正在尝试实现一项功能,该程序在没有鼠标单击或鼠标移动(例如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();
答案 0 :(得分:0)
可能是一个问题,您的延迟是在第一次移动后每5秒钟发生一次,但是在经过之前没有更新。请尝试使用计时器,以便将鼠标移动事件上的计时器设置为5秒,计时器经过事件上的计时器设置为播放视频。