【实例简介】
【实例截图】
【核心代码】
package com.qianghui.videoplayer.main;
import java.awt.EventQueue;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.SwingWorker;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
import com.qianghui.videoplayer.views.MainWindow;
import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;
public class PlayMain {
static MainWindow frame;
public static void main(String[] args) {
// TODO Auto-generated method stub
NativeLibrary.addSearchPath(
RuntimeUtil.getLibVlcLibraryName(), "D:\\Program Files\\VideoLAN\\VLC"
);
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
frame = new MainWindow();
frame.setVisible(true);
String options[] = {"--subsdec-encoding=GB18030"};
frame.getMediaPlayer().prepareMedia("D:\\Users\\强辉\\Desktop\\RGB.MP4",options);//传入视频文件路径,播放器参数
//frame.getMediaPlayer().toggleFullScreen();
new SwingWorker() {
@Override
protected String doInBackground() throws Exception {
while (true) {//循环进度条
long total = frame.getMediaPlayer().getLength();//获取当前视频长度
long curr = frame.getMediaPlayer().getTime();
float percent = (float)curr/total;
publish((int)(percent*100));
Thread.sleep(100);//每秒循环10次
}
}
protected void process(java.util.List chunks) {
for (int v : chunks) {
frame.getProgressBar().setValue(v);
}
};
}.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public static void play(){//播放方法
frame.getMediaPlayer().play();
}
public static void pause(){//暂停方法
frame.getMediaPlayer().pause();
}
public static void stop(){//停止方法
frame.getMediaPlayer().stop();
}
public static void jumpTo(float to){
frame.getMediaPlayer().setTime((long) (to*frame.getMediaPlayer().getLength()));//设置跳转
}
public static void setVol(int v){
frame.getMediaPlayer().setVolume(v);
}
public static void openFile(){//打开文件
JFileChooser chooser = new JFileChooser();
int v = chooser.showOpenDialog(null);
if(v == JFileChooser.APPROVE_OPTION){
File file = chooser.getSelectedFile();
frame.getMediaPlayer().playMedia(file.getAbsolutePath());
}
}
public static void openSubtitle(){//打开字幕
JFileChooser chooser = new JFileChooser();
int v = chooser.showOpenDialog(null);
if(v == JFileChooser.APPROVE_OPTION){
File file = chooser.getSelectedFile();
frame.getMediaPlayer().setSubTitleFile(file);
}
}
public static void Exit(){
frame.getMediaPlayer().release();//释放资源再退出
System.exit(0);
}
}