http://capricasoftware.co.uk/#/projects/vlcj/tutorial/full-screen
官网上有完整代码教程
注意要先安装系统对应版本64位版本的vjcj
一、工程准备
首先需要下载并安装VLC播放器,然后下载vlcj外部库。
下载slf4j中的slf4j-api-1.7.13.jar、 slf4j- nop-1.7.13.jar
将vlc安装目录下的libvlc.dll、libvlccore.dll 两个文件以及plugins复制到对应的java工程目录下
以下是刚刚配置的截图
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import org.apache.log4j.Logger;
import com.sun.jna.NativeLibrary;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import uk.co.caprica.vlcj.discovery.NativeDiscovery;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
public class MyVideo {
/*
* 通过查找本地路径去找到vlclib
*/
private static Logger log = Logger.getLogger("client");
public static void findLibVlc() {
boolean found = new NativeDiscovery().discover();
System.out.println(found);
System.out.println(LibVlc.INSTANCE.libvlc_get_version());
}
//设置路径
private static final String NATIVE_LIBRARY_SEARCH_PATH = "lib/vlcjlib";
public static void setLibVlc()
{
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), NATIVE_LIBRARY_SEARCH_PATH);
log.info("version:" + LibVlc.INSTANCE.libvlc_get_version());
}
public static void main(String[] args) {
//new NativeDiscovery().discover();
setLibVlc();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Tutorial();
}
});
}
}
class Tutorial {
private static Logger log = Logger.getLogger("client");
private final JFrame frame;
private final EmbeddedMediaPlayerComponent mediaPlayerComponent;
public Tutorial() {
frame = new JFrame("My First Media Player");
frame.setBounds(100, 100, 600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
frame.setContentPane(mediaPlayerComponent);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
log.info(e+"退出");
mediaPlayerComponent.release();
System.exit(0);
}
});
log.info("play " + "1.flv");
mediaPlayerComponent.getMediaPlayer().playMedia("doc/1.flv");
}
}
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import uk.co.caprica.vlcj.discovery.NativeDiscovery;
public class Tutorials {
private final JFrame frame;
private final EmbeddedMediaPlayerComponent mediaPlayerComponent;
private final JButton pauseButton;
private final JButton rewindButton;
private final JButton skipButton;
public static void main(final String[] args) {
new NativeDiscovery().discover();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Tutorials("doc/1.wmv");
}
});
}
public Tutorials(String args) {
frame = new JFrame("My First Media Player");
frame.setBounds(100, 100, 600, 400);
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
mediaPlayerComponent.release();
System.exit(0);
}
});
JPanel contentPane = new JPanel();
contentPane.setLayout(new BorderLayout());
mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
contentPane.add(mediaPlayerComponent, BorderLayout.CENTER);
JPanel controlsPane = new JPanel();
pauseButton = new JButton("Pause");
controlsPane.add(pauseButton);
rewindButton = new JButton("Rewind");
controlsPane.add(rewindButton);
skipButton = new JButton("Skip");
controlsPane.add(skipButton);
contentPane.add(controlsPane, BorderLayout.SOUTH);
pauseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mediaPlayerComponent.getMediaPlayer().pause();
}
});
rewindButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mediaPlayerComponent.getMediaPlayer().skip(-10000);
}
});
skipButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mediaPlayerComponent.getMediaPlayer().skip(10000);
}
});
frame.setContentPane(contentPane);
frame.setVisible(true);
mediaPlayerComponent.getMediaPlayer().playMedia(args);
}
}
//import java.awt.BorderLayout;
//import java.awt.event.ActionEvent;
//import java.awt.event.ActionListener;
//import java.awt.event.WindowAdapter;
//import java.awt.event.WindowEvent;
//
//import javax.swing.JButton;
//import javax.swing.JFrame;
//import javax.swing.JOptionPane;
//import javax.swing.JPanel;
//import javax.swing.SwingUtilities;
//
//import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
//import uk.co.caprica.vlcj.discovery.NativeDiscovery;
//import uk.co.caprica.vlcj.player.MediaPlayer;
//import uk.co.caprica.vlcj.player.MediaPlayerEventAdapter;
//
//public class Tutorials {
//
// private final JFrame frame;
//
// private final EmbeddedMediaPlayerComponent mediaPlayerComponent;
//
// private final JButton pauseButton;
//
// private final JButton rewindButton;
//
// private final JButton skipButton;
//
// public static void main(final String[] args) {
// new NativeDiscovery().discover();
// SwingUtilities.invokeLater(new Runnable() {
// @Override
// public void run() {
// new Tutorials(null);
// }
// });
// }
//
// public Tutorials(String args) {
// frame = new JFrame("My First Media Player");
// frame.setBounds(100, 100, 600, 400);
// frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
// frame.addWindowListener(new WindowAdapter() {
// @Override
// public void windowClosing(WindowEvent e) {
// System.out.println(e);
// mediaPlayerComponent.release();
// System.exit(0);
// }
// });
//
// JPanel contentPane = new JPanel();
// contentPane.setLayout(new BorderLayout());
//
// mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
// contentPane.add(mediaPlayerComponent, BorderLayout.CENTER);
//
// JPanel controlsPane = new JPanel();
// pauseButton = new JButton("Pause");
// controlsPane.add(pauseButton);
// rewindButton = new JButton("Rewind");
// controlsPane.add(rewindButton);
// skipButton = new JButton("Skip");
// controlsPane.add(skipButton);
// contentPane.add(controlsPane, BorderLayout.SOUTH);
//
// pauseButton.addActionListener(new ActionListener() {
// @Override
// public void actionPerformed(ActionEvent e) {
// mediaPlayerComponent.getMediaPlayer().pause();
// }
// });
//
// rewindButton.addActionListener(new ActionListener() {
// @Override
// public void actionPerformed(ActionEvent e) {
// mediaPlayerComponent.getMediaPlayer().skip(-10000);
// }
// });
//
// skipButton.addActionListener(new ActionListener() {
// @Override
// public void actionPerformed(ActionEvent e) {
// mediaPlayerComponent.getMediaPlayer().skip(10000);
// }
// });
//
// mediaPlayerComponent.getMediaPlayer().addMediaPlayerEventListener(new MediaPlayerEventAdapter() {
// @Override
// public void playing(MediaPlayer mediaPlayer) {
// SwingUtilities.invokeLater(new Runnable() {
// @Override
// public void run() {
// frame.setTitle(String.format(
// "My First Media Player - %s",
// mediaPlayerComponent.getMediaPlayer().getMediaMeta().getTitle()
// ));
// }
// });
// }
//
// @Override
// public void finished(MediaPlayer mediaPlayer) {
// SwingUtilities.invokeLater(new Runnable() {
// @Override
// public void run() {
// closeWindow();
// }
// });
// }
//
// @Override
// public void error(MediaPlayer mediaPlayer) {
// SwingUtilities.invokeLater(new Runnable() {
// @Override
// public void run() {
// JOptionPane.showMessageDialog(
// frame,
// "Failed to play media",
// "Error",
// JOptionPane.ERROR_MESSAGE
// );
// closeWindow();
// }
// });
// }
// });
//
// frame.setContentPane(contentPane);
// frame.setVisible(true);
//
// mediaPlayerComponent.getMediaPlayer().playMedia("doc/1.flv");
// }
//
// private void closeWindow() {
// frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
// }
//}