在JPanel中嵌入VLCJ

Adi*_*dil 6 java jpanel vlcj

我已经阅读了这个SO线程,当我尝试使用代码进行一些更改时,我只得到一个黑色的窗口,有人可以告诉我这里我做错了什么,我只有一个带有main函数的类:

import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;

import com.sun.jna.NativeLibrary;

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.windows.WindowsCanvas;

public class Canvas_Demo {

    // Create a media player factory
    private MediaPlayerFactory mediaPlayerFactory;

    // Create a new media player instance for the run-time platform
    private EmbeddedMediaPlayer mediaPlayer;

    private JPanel panel;
    private WindowsCanvas canvas;
    private JFrame frame;

    //Constructor
    public Canvas_Demo(String url){

        //Creating a panel that while contains the canvas
        panel = new JPanel();
        panel.setBackground(Color.BLACK);

        //Creating the canvas and adding it to the panel :
        canvas = new WindowsCanvas();
        panel.add(canvas);
        panel.revalidate();
        panel.repaint();

        //Creation a media player :
        mediaPlayerFactory = new MediaPlayerFactory();
        mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer();
        CanvasVideoSurface videoSurface = mediaPlayerFactory.newVideoSurface(canvas);
        mediaPlayer.setVideoSurface(videoSurface);

        //Construction of the jframe :
        frame = new JFrame("Demo with Canvas AWT");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocation(100, 100);
        frame.setSize(700, 500);

        //Adding the panel to the 
        frame.add(panel);
        frame.setVisible(true);

        //Playing the video
        mediaPlayer.playMedia(url);


    }
    //Main function :
    public static void main(String[] args) {
        NativeLibrary.addSearchPath("libvlc", "C:/Program Files/VideoLAN/VLC");

        final String url = "C:/MyVideo.mp4";

        new Canvas_Demo(url);

    }

}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Adi*_*dil 4

当我将视频 url(也称为 MRL 作为媒体资源定位器)更改为:C:\\MyVideo.mp4我在窗口中看到了视频。

这次讨论对我有帮助。