有谁知道我可以在 JPanel 中播放 .mp4 视频文件的方法吗?
我尝试过使用 .avi 文件使用 JMF,但没有成功,现在我对播放视频文件这样一个简单的任务变得如此乏味感到困惑和沮丧。
请任何人告诉我我可以走什么路,我将不胜感激。
我听说过 VLCJ,但问题是我不能保证每台运行此应用程序的计算机都会安装 VLC 播放器。有没有办法可以将 VLC 播放器捆绑到分发文件夹中?
最初,我们使用的视频位于 Vimeo 上,但事实证明,由于缺乏 API 支持,嵌入它几乎是不可能的,我想好吧,我就在本地播放它,但现在连这都变得如此困难。
感谢 @VGR 让 JavaFX 引起我的注意,我刚刚将 JFXPanel 集成到我想要视频所在的 JPanel 中。在我的情况下,它工作得很好,因为它是一个简单的屏幕,可以播放一个视频。
下面是完整的代码片段:
private void getVideo(){
final JFXPanel VFXPanel = new JFXPanel();
File video_source = new File("tutorial.mp4");
Media m = new Media(video_source.toURI().toString());
MediaPlayer player = new MediaPlayer(m);
MediaView viewer = new MediaView(player);
StackPane root = new StackPane();
Scene scene = new Scene(root);
// center video position
javafx.geometry.Rectangle2D screen = Screen.getPrimary().getVisualBounds();
viewer.setX((screen.getWidth() - videoPanel.getWidth()) / 2);
viewer.setY((screen.getHeight() - videoPanel.getHeight()) / 2);
// resize video based on screen size
DoubleProperty width = viewer.fitWidthProperty();
DoubleProperty height = viewer.fitHeightProperty();
width.bind(Bindings.selectDouble(viewer.sceneProperty(), "width"));
height.bind(Bindings.selectDouble(viewer.sceneProperty(), "height"));
viewer.setPreserveRatio(true);
// add video to stackpane
root.getChildren().add(viewer);
VFXPanel.setScene(scene);
//player.play();
videoPanel.setLayout(new BorderLayout());
videoPanel.add(VFXPanel, BorderLayout.CENTER);
}
创建 getVideo() 函数后,我在 JFrame 的构造函数中调用它,以在应用程序启动时触发它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)