将嵌入式媒体播放器组件添加到 JPanel 时出错

问题描述

我尝试使用此代码在简单的 jframe 上显示视频:

package com.company;

import javax.swing.*;
import java.awt.*;

import uk.co.caprica.vlcj.player.component.EmbeddedMediaPlayerComponent;

public class Main {

    static EmbeddedMediaPlayerComponent myMedia = new EmbeddedMediaPlayerComponent();

    public static void main(String[] args) {
        JFrame j = new JFrame("Stream player");

        JPanel jp = new JPanel();
        jp.setBounds(0,700,300);
        jp.setLayout(null);

        myMedia.mediaPlayer().media().start("C:\\Users\\cikko\\Downloads\\Video\\144.mp4");
        myMedia.setBounds(0,280);

        jp.setBackground(Color.BLACK);
        jp.add(myMedia);

        j.add(jp);

        j.setSize(700,300);
        j.setLayout(null);
        j.setVisible(true);
    }

}

但它给出了错误。我尝试更改 jpanel 布局,但它也不起作用。我该如何解决?谢谢

Exception in thread "main" java.lang.IllegalStateException: The video surface component must be displayable
    at uk.co.caprica.vlcj.player.embedded.videosurface.ComponentVideoSurface.attach(ComponentVideoSurface.java:66)


解决方法

在播放媒体之前,您必须使帧可见。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...