播放视频时vlcj黑屏

时间:2015-10-29 04:43:05

标签: java swing vlcj

我在播放视频的嵌套JPanel时遇到了一些麻烦。我有一个AVPlayer类扩展JPanel,可同时播放多达4个视频。每个视频都在自己的画布中播放,该画布位于自己的JPanel中。然后将所有面板放入AVPlayer面板。但当我尝试播放视频时,我得到的只是一个黑色方块。

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

有效的代码:

    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);

显示一个小黑方的代码

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);

1 个答案:

答案 0 :(得分:1)

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

您的AVPlayer也应覆​​盖getPreferredSize的{​​{1}}方法并返回"首选尺寸"通过这种方式,布局管理人员有一些希望能够真正做到这一点

有关详细信息,请参阅Laying Out Components Within a Container

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

相关问题