gpt4 book ai didi

java - vlcj播放视频黑屏

转载 作者:行者123 更新时间:2023-12-01 11:00:07 24 4
gpt4 key购买 nike

我在使用嵌套 JPanel 播放视频时遇到了一些问题。我有一个扩展 JPanel 的 AVPlayer 类,它最多可以同时播放 4 个视频。每个视频都在其自己的 Canvas 内播放,该 Canvas 位于其自己的 JPanel 内。然后将所有面板放入 AVPlayer 面板中。但是当我尝试播放视频时,我得到的只是一个黑色方 block 。

我不确定我的较大程序中的实际问题是什么,但我认为如果我可以使用下面的第二段代码播放视频,我可以解决它。有人可以告诉我为什么第一段代码能够正确显示所有视频,但第二段代码却不能。

有效的代码:

    JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);

AVPlayer player = new AVPlayer();
frame.getContentPane().add(player);
frame.revalidate();
String[] path = {"(ei)ga_00.mp4", "ei-utsu(ru)_00.mp4", "video.mp4"};
player.playVideo(path);

显示一个黑色小方 block 的代码

JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);

AVPlayer player = new AVPlayer();

JPanel panel = new JPanel();
panel.add(player);

frame.getContentPane().add(panel);
frame.revalidate();
String[] path = {"(ei)ga_00.mp4", "ei-utsu(ru)_00.mp4", "video.mp4"};
player.playVideo(path);

最佳答案

JPanel panel = new JPanel(); 更改为 JPanel panel = new JPanel(new BorderLayout());

您的AVPlayer还应该重写JPanelgetPreferredSize方法并返回组件的“首选大小”,这样布局管理器有一些希望实际上能够在那里工作

参见Laying Out Components Within a Container了解更多详情

请注意,vlcj 的主要视频表面是一个重量级组件,将它们混合在轻量级容器上可能会产生一些不良效果

关于java - vlcj播放视频黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33406082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com