
Java利用VLC开发简易视屏播放器
1、环境配置
云网盘下载地址连接:https://yunpan.360.cn/surl_ywhqatzsxwy(提取码:a965)(打开连接输入提取密码直接下载解压用)或者复制这里提供的这个地址在你的电脑或者你的电脑上的空白栏上打开.输入密码点普通下载或者转存到你网盘上用下好后解压用。kubectl安装配置:下载对应系统版本,比如linux的下载里面对应的tar gz,然后解压并设置下环。oracle11g客户端免费下载,支持包括32位和64位的操作系统,如果你需要linux也可以点击下载链接去官网下载对应的oracle11g版本,小编这里提供了百度网盘和官网的地址java本地视频播放器,感谢您一直对it猫扑网的支持。

(2)下载VLCJ (#/projects/vlcj)把下载文件解压后将其目录下的jna-3.5.2.jar、platform-3.5.2.jar、vlcj-3.8.0.jar(不同版本后缀数字可能会不同)三个文件复制到对应的java工程目录(新建 lib文件夹)下;
1、将php安装目录中找libeay32.dll,ssleay32.dll,php_curl.dll,php5ts.dll四个dll文件,有的在ext目录,找到后将他们复制到system32下,如果找不到请下载对应版本的php复制过去。在网站根目录wblog1新建 ucenter 目录,解压ucenter 1.6.0,把解压得到的upload目录里的所有文件复制到刚才新建的ucenter目录里。安装过程:复制apk安装包到data/app目录下,解压并扫描安装包java本地视频播放器,把dex文件(dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。
(4)将vlc安装目录下的libvlc.dll、libvlccore.dll 两个文件以及plugins问佳佳复制到对应的java工程目录下;

将lib文件中的jar包导入到工程项目中。配置好的项目目录如下图所示

(5)具体代码如下

播放器主类代码
package deng.test; import java.awt.EventQueue; import java.io.File; import javax.swing.JFileChooser; import javax.swing.SwingWorker; import com.sun.jna.Native; import com.sun.jna.NativeLibrary; import uk.co.caprica.vlcj.binding.LibVlc; import uk.co.caprica.vlcj.runtime.RuntimeUtil; public class PlayerMain { static Window frame; private static int times=1; private static boolean flag=true; // private static final String NATIVE_LIBRARY_SEARCH_PATH = "D:\\Program // Files\\VideoLAN\\VLC\\sdk\\lib"; public static void main(String[] args) { // 环境配置,将vlc sdk导入到eclipse // if(RuntimeUtil.isWindows()){ } // NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), // "D:\\vlc\\vlc-2.2.6\\sdk\\lib"); //导入的路径是vlc的安装路径 NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "vlcj//lib"); // 导入的路径是vlc的安装路径 Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class); // System.out.println(LibVlc.INSTANCE.libvlc_get_version()); // 创建主程序界面运行窗体 EventQueue.invokeLater(new Runnable() { @Override public void run() { try { frame = new Window(); frame.setVisible(true); frame.getMediaPlayer().playMedia("video//style.avi"); // 直接播放视屏,参数是视屏文件的绝对路径 // frame.getMediaPlayer().prepareMedia("video//test.mp4"); // //控制即将播放的视频 new SwingWorker<String, Integer>() { @Override protected String doInBackground() throws Exception { // TODO Auto-generated method stub while (flag) { // 获取视频播放进度并且按百分比显示 long total = frame.getMediaPlayer().getLength(); if(total==-1){//如果视频播放完,循环播放视频 play(); times++; System.out.println(times+"******************"); } long curr = frame.getMediaPlayer().getTime(); float percent = (float) curr / total; publish((int) (percent * 100)); Thread.sleep(100); } return null; } protected void process(java.util.List<Integer> chunks) { for (int v : chunks) { frame.getProgressBar().setValue(v); } } }.execute(); } catch (Exception e) { e.printStackTrace(); } } }); } //关闭播放器释放资源 public static void dispose(){ flag=false; frame.getMediaPlayer().stop(); frame.dispose(); } // 打开文件 public static void openVideo() { 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 exit() { frame.getMediaPlayer().release(); System.exit(0); } // 实现播放按钮的方法 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); } }
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-104015-1.html
这好比日本车与纯国产车