I have read this SO thread and when I have tried to use the code with some changes, I'm getting just a black window, can some one tell me what I'm doing wrong here, I have just one class with main function :
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);
}
}
Thanks in advance.
When I change the video url (also called MRL as Media Ressource Locator) to this : C:\\MyVideo.mp4
I got the video in the window.
this discussion has helped me.