相关疑难解决方法(0)

试图将vlcj媒体播放器嵌入JPanel中的WindowsCanvas中

我正在尝试在JPanel中使用vlcj播放视频,但它对我不起作用.我得到的消息异常是"java.lang.IllegalStateException:视频表面组件必须是可显示的",这与"保持获取错误""组件必须可显示"中的问题相同.

包含画布和vlcj播放器的JPanel代码如下:

import javax.swing.JPanel;

import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;

import java.awt.Canvas;
import java.awt.Color;

import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.player.MediaPlayerFactory;
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
import uk.co.caprica.vlcj.player.embedded.videosurface.CanvasVideoSurface;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
import uk.co.caprica.vlcj.runtime.windows.WindowsCanvas;

public class MyJPanel extends JPanel {
private EmbeddedMediaPlayer player;
private WindowsCanvas canvas;

public MyJPanel() {
    canvas = new WindowsCanvas();
    add(canvas);
    revalidate();
    repaint();

    canvas.setVisible(true);

    MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
    player = mediaPlayerFactory.newEmbeddedMediaPlayer();

    CanvasVideoSurface videoSurface = mediaPlayerFactory.newVideoSurface(canvas);

    player.setVideoSurface(videoSurface);
    player.playMedia("v.avi");   // This sentence throws the exception.
}
}
Run Code Online (Sandbox Code Playgroud)

MyJFrame扩展了JFrame,只包含MyJPanel JPanel.我认为这根本不重要.

import javax.swing.JFrame;

public class MyJFrame extends JFrame …
Run Code Online (Sandbox Code Playgroud)

java video jpanel vlcj

4
推荐指数
1
解决办法
9710
查看次数

标签 统计

java ×1

jpanel ×1

video ×1

vlcj ×1