JavaFX MediaPlayer 循环
JavaFX MediaPlayer loop
我正在做一个简单的游戏,我想要一个视频背景。我首先使用 gif 执行此操作,但运行速度有点慢。现在我使用媒体播放器创建了一个视频背景并且效果很好。
视频显示没有问题。
我唯一的问题是视频不想循环播放。我尝试了在互联网上找到的每一个方法,但似乎没有任何效果。
视频总是播放 1 次然后停止。
我正在使用 java JDK8。 Windows10、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);
所有这些都在堆栈窗格中。
我试过将 mp4 导出到 flv,但这不起作用。
如果有人知道创建视频背景的不同方法,欢迎提供。
编辑:
到目前为止没有运气,我正在考虑使用:
player.setOnEndOfMedia(new Runnable() {
@Override
public void run() {
player.seek(Duration.ZERO);
}
});
但即使这样也行不通..
来自MediaPlayer
API:
媒体播放从 startTime
开始,一直持续到 stopTime
。由这两个端点定义的间隔称为一个循环,持续时间为停止时间和开始时间之差。此循环可以设置为重复特定或不确定的次数。
所以你需要设置startTime
和stopTime
才能循环工作。例如(对于 5 秒的视频):
player.setStartTime(Duration.seconds(0));
player.setStopTime(Duration.seconds(5));
可能有点晚了,但你在寻求持续时间为零后忘记玩了。
player.setOnEndOfMedia(new Runnable() {
@Override
public void run() {
player.seek(Duration.ZERO);
player.play();
}
});
对我有用
我正在做一个简单的游戏,我想要一个视频背景。我首先使用 gif 执行此操作,但运行速度有点慢。现在我使用媒体播放器创建了一个视频背景并且效果很好。 视频显示没有问题。
我唯一的问题是视频不想循环播放。我尝试了在互联网上找到的每一个方法,但似乎没有任何效果。 视频总是播放 1 次然后停止。 我正在使用 java JDK8。 Windows10、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);
所有这些都在堆栈窗格中。
我试过将 mp4 导出到 flv,但这不起作用。
如果有人知道创建视频背景的不同方法,欢迎提供。
编辑: 到目前为止没有运气,我正在考虑使用:
player.setOnEndOfMedia(new Runnable() {
@Override
public void run() {
player.seek(Duration.ZERO);
}
});
但即使这样也行不通..
来自MediaPlayer
API:
媒体播放从 startTime
开始,一直持续到 stopTime
。由这两个端点定义的间隔称为一个循环,持续时间为停止时间和开始时间之差。此循环可以设置为重复特定或不确定的次数。
所以你需要设置startTime
和stopTime
才能循环工作。例如(对于 5 秒的视频):
player.setStartTime(Duration.seconds(0));
player.setStopTime(Duration.seconds(5));
可能有点晚了,但你在寻求持续时间为零后忘记玩了。
player.setOnEndOfMedia(new Runnable() {
@Override
public void run() {
player.seek(Duration.ZERO);
player.play();
}
});
对我有用