2017-04-03 189 views
0

我正在做一个simpel游戏,我想有一个视频背景。我首先使用gif做了这个,但是这样做速度很慢。现在我使用mediaplayer创建了一个视频背景,并且效果非常好。 视频显示没有问题。JavaFX MediaPlayer循环

我唯一的问题是视频不想循环。我尝试了每一个我在互联网上找到的aproache,但似乎没有任何工作。 视频始终播放1次然后停止播放。 我正在使用java JDK8。 Windows 10,64位。

这是我的代码:

Media media = new 
Media(getClass().getClassLoader().getResource("img/menu.mp4").toString()); 

MediaPlayer player = new MediaPlayer(media); 
player.setAutoPlay(true); 
player.setCycleCount(MediaPlayer.INDEFINITE); 
MediaView view = new MediaView(player); 

所有这一切都是一个stackpane内。

我曾尝试将mp4导出到flv,但这不起作用。

如果有人知道不同的方式来创建视频背景,一切都是受欢迎的。

编辑: 到目前为止没有运气,我想使用的:

player.setOnEndOfMedia(new Runnable() { 
      @Override 
      public void run() { 
       player.seek(Duration.ZERO); 
      } 
     }); 

但不会连这个工程..

+0

您是否在设置循环次数后尝试播放媒体,而不是之前? – VGR

回答

-1

MediaPlayer API:

媒体开始播放在startTime并继续到stopTime。这两个端点定义的时间间隔称为一个周期,其持续时间是停止时间和开始时间的差值。该周期可以被设置为重复特定的或无限次的次数。

所以你需要在骑行之前设置startTimestopTime。例如(对于5秒钟的视频):

player.setStartTime(Duration.seconds(0)); 
player.setStopTime(Duration.seconds(5)); 
+0

循环有效!唯一奇怪的是:对于5秒的视频来说,它的工作原理非常完美,但是当我的视频长度为10秒,并将持续时间设置为10时,它会再次冻结。 – jdlChicory

+0

仍然不起作用...玩家稍后停下来 –