我想播放存在于我的硬盘中的两个(或更多)视频,如何更新Media对象以便MediaPlayer自动转到下一个视频。在JavaFX中播放连续视频
2
A
回答
2
现在我不能测试它,但我认为它应该工作:
public MediaView createMediaView(Collection<String> urls){
MediaView mediaView = new MediaView();
initMediaPlayer(mediaView, urls.iterator());
return mediaView;
}
private void initMediaPlayer(
final MediaView mediaView,
final Iterator<String> urls
){
if (urls.hasNext()){
MediaPlayer mediaPlayer = new MediaPlayer(new Media(urls.next()));
mediaPlayer.setAutoPlay(true);
mediaPlayer.setOnEndOfMedia(new Runnable() {
@Override public void run() {
initMediaPlayer(mediaView, urls);
}
});
mediaView.setMediaPlayer(mediaPlayer);
}
}
1
下面是从硬盘驱动器sample program which plays an AudioPlaylist。
该程序的工作原理是为每个要播放的文件创建一个包含新MediaPlayer和新媒体的列表。在程序中有一个MediaView,对于每个MediaPlayer,在EndOfMedia上,MediaView的MediaPlayer被设置为列表中的下一个。这与jju的递归答案几乎相同。
注意,要更改正在播放的媒体,您不要更新MediaPlayer中的媒体(因为Media和MediaPlayer之间存在1:1对应关系,所以无法这样做),而是将MediaPlayer更新为MediaView。
视频的概念与音频非常相似,因为JavaFX中的音频和视频都表示为MediaPlayer播放的媒体,并通过MediaView进行管理。
相关问题
- 1. 视频不连续播放
- 2. 连续播放视频
- 3. 在MediaElement中连续播放视频块
- 4. 在VideoView中连续播放视频
- 5. 连续播放16个视频后视频停止播放
- 6. Android VideoView不播放连续视频
- 7. 如何连续播放视频?
- 8. JMC/JavaFX - 播放视频
- 9. JavaFX视频没有播放
- 10. 播放QuickTime视频的JavaFX
- 11. javafx视频播放器timeSlider
- 12. JavaFX - 播放循环视频
- 13. 无法在JavaFX中连续播放MediaPlayer中的播放列表
- 14. JavaFX的WebEngine视频播放在Linux中
- 15. 在javafx中播放加密视频
- 16. 在JavaFX中播放Youtube视频
- 17. iPhone Dev:MediaPlayer在后续播放中不播放视频(仅音频)
- 18. 在视频播放中播放视频
- 19. 使用视频ID连续播放YouTube视频
- 20. 连续播放视频文件无延迟/视频间缓冲
- 21. Xuggler音频直播播放不连续
- 22. 在VLC播放列表中连续播放不同的视频文件
- 23. 如何在Exoplayer中连续播放视频块
- 24. 在WPF媒体元素中连续播放视频
- 25. JavaFX - 播放视频作为背景
- 26. 如何在iPhone上连续播放序列视频?
- 27. 在Android上连续播放mp4视频序列
- 28. 视频播放器播放视频
- 29. 在Flash播放器中播放视频
- 30. 连续播放多个音频文件