目标:
制作一个简易的视频播放器,实现对视频文件的打开,播放,暂停,退出,以及实现进度条的显示,通过点击视频播放进度条可以更改视频的播放时间。还添加调节音量的功能。
工程的准备:
因为通过java制作的视频播放器是基于vlcj库建立的,所有必须首先下载vlcj,然后解压导入Java工程中调用。还要下载slf4j库,点击可下载slf4j库,最后由于视频播放器的内核是基于VLC播放器的,所有需要在电脑上下载VLC播放器,下载后安装,我这里选择安装的路径是默认路径。
一、首先下载vlcj后解压,将其中的jna-3.5.3.jar、platform-3.5.2.jar、vlcj-3.8.0.jar三个文件复制到java工程的lib文件夹中,lib文件夹需自建。
图:所需要的三个文件
二、下载slf4j库后,解压,将其中的slf4j-api-1.7.25.jar和slf4j-nop-1.7.25.jar,两个文件添加到java工程的lib文件夹中。把添加好的库添加到构建路径中,用来引用。工程结构如下图:
图:工程结构图
关于vlcj库使用说明:
关于vlcj库的使用,具体可点击:Vlcj查看。在这个Java工程中,首先使用是按照官方给出的例子使用。
第一步使用自动发现本地库:
//NativeDiscovery().discover();函数返回的是一个布尔类型的值,所有可以定义一个布尔类型的值,用来接收,利用控制台打印,是否发现本地库
boolean found = new NativeDiscovery().discover();
System.out.println(found);
官方提示原代码:
package tutorial;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.discovery.NativeDiscovery;
public class Tutorial {
public static void main(String[] args) {
boolean found = new NativeDiscovery().discover();
System.out.println(found);
System.out.println(LibVlc.INSTANCE.libvlc_get_version());
}
}
图:使用说明
第二步,需要指定VLC路径。
//指定VLC路径,这里使用的路径是安装默认路径。
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "C:\\Program Files\\VideoLAN\\VLC");
//打印版本,用来检验是否获得文件
System.out.println(LibVlc.INSTANCE.libvlc_get_version());
官方原代码:
package tutorial;
import uk.co.caprica.vlcj.binding.LibVlc;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
import com.sun.jna.NativeLibrary;
public class Tutorial {
private static final String NATIVE_LIBRARY_SEARCH_PATH = "/home/vlc";
public static void main(String[] args) {
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), NATIVE_LIBRARY_SEARCH_PATH);
System.out.println(LibVlc.INSTANCE.libvlc_get_version());
}
}
图:使用说明
只有当运行代码后,控制台什么都没有输出,一切正常,证明准备工作已做好,可以进行下面的进程。
行
图:运行后,控制台正常
播放器代码的实现:
主方法代码:
package videoPlayer.Main;
import java.awt.EventQueue;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.SwingWorker;
import com.sun.jna.Nati