b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

vlcj--java-制作视频播放器

电脑杂谈  发布时间:2019-06-30 09:11:02  来源:网络整理

java播放音乐_java本地视频播放器_java 视频播放服务器

”键控制播放进度,“空格”键控制播放/暂停,“esc”退出全屏模式。显示/锁定/音轨/字幕/音量加/减/快进/快退/播放/暂停/退出本软件/退出全屏。在视频播放时,你的智能手机或是平板就像一个,支持暂停、播放、前后快进等操作,也支持使用设备来调节音量,但在我的测试中,仅能实现chromecast音量而非电视音量,所以还需要使用电视。

因为通过java制作的视频播放器是基于vlcj库建立的java本地视频播放器,所有必须首先下载java本地视频播放器,然后解压导入Java工程中调用。还要下载slf4j库,点击可下载slf4j库,最后由于视频播放器的内核是基于VLC播放器的,所有需要在电脑上,下载后安装,我这里选择安装的路径是默认路径。

(一)下载后解压 复制解压后的两个文件 到安装mt4 软件的目录下 然后粘贴 :比如c:\programfiles\你的mt4软件\experts\indicators。一、下载:到网站搜索heritrix,然后分别下载下来hheritrix-1.14.4-src.zip,heritrix-1.14.4.zip下载地址:%29/二、配置1.解压heritrix-1.14.4.zip,假设解压到了c盘根目录下并把解压后的文件夹命名为heritrix(进入c:/heritrix/conf复制文件jmxremote.password.template到c:/heritrix下并把文件重新命名为jmxremote.password,然后修改其内容为下:monitorrole @123456789@ ->monitorrole admin (@于@之间设置的是密码,后面是->用户角色用户名)controlrole @123456789@ ->controlrole shi并设置文件jmxremote.password的属性为只读3.进入c:/heritrix/conf打开文件heritrix.properties,修改其中的几项key-value值heritrix.cmdline.admin = admin:770629 (用户名:密码)heritrix.cmdline.port = 8080 (heritrix服务器默认端口号8080,保证该端口不被占用就不用改了)4.打开cmd,切换目录到c:/heritrix/bin然后敲入命令:heritrix.cmd --admin=admin:123456789会出现如下错误:。下载后,解压,复制里边的gdiplus.dll文件到系统目录下,如下图,是win7系统的存放位置,其他系统放在相应位置即可(系统目录一般为:c:winntsystem32 64位系统为c:windowssyswow64)。

vlcj

图:所需要的三个文件

二、下载slf4j库后,解压,将其中的slf4j-api-1.7.25.jar和slf4j-nop-1.7.25.jar,两个文件添加到java工程的lib文件夹中。把添加好的库添加到构建路径中,用来引用。工程结构如下图:

这里写图片描述

图:工程

关于vlcj库的使用,查看。在这个Java工程中,首先使用是按照官方给出的例子使用。

java 视频播放服务器_java播放音乐_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());

官方原代码:

java本地视频播放器_java 视频播放服务器_java播放音乐

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.NativeLibrary;
import uk.co.caprica.vlcj.discovery.NativeDiscovery;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;
import videoPlayer.views.MainWindow;
public class MainVideoPlayler {
    //声明全局变量MainWindow
    static MainWindow frame;
    public static void main(String[] args) {
        //实例化NativeDiscovery类
        new NativeDiscovery().discover();
        //通过判断选择系统,Windows,Mac OS,Liunx。以下都是各个系统的VLC默认安装路径
        if (RuntimeUtil.isWindows()) {
            NativeLibrary.addSearchPath(
                RuntimeUtil.getLibVlcLibraryName(), "C:\\Program Files\\VideoLAN\\VLC");
        }else if (RuntimeUtil.isMac()) {
            NativeLibrary.addSearchPath(
                RuntimeUtil.getLibVlcLibraryName(), "/Applications/VLC.app/Contents/MacOS/lib");
        }else if (RuntimeUtil.isNix()) {
            NativeLibrary.addSearchPath(
                RuntimeUtil.getLibVlcLibraryName(), "/home/linux/vlc/install/lib");
        }
        EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                frame = new MainWindow();
                frame.setVisible(true);
                //通过--subsdec-encoding= 可以指定字幕文件编码格式
                String options[] = {"--subsdec-encoding=GB18030"};
                //让窗体获得视频资源
                frame.getMediaPlayer().prepareMedia(
                    "D:\\我的文件\\06、Java语言\\7、界面设计\\10、Java视频播放器的制作\\1、工程的准备.mp4",options);
                //prepareMedia();是准备播放视频。而PlayMedia();是直接播放视频
                //frame.getMediaPlayer().playMedia(
               // "D:\\我的文件\\06、Java语言\\7、界面设计\\10、Java视频播放器的制作\\1、工程的准备.mp4",options);
                new SwingWorker<String, Integer>() {
                    //调节视频音量
                    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);
                     }
                    }
                    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 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 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 openSubtitle() {
        JFileChooser chooser = new JFileChooser();
        int v = chooser.showOpenDialog(null);
        if (v == JFileChooser.APPROVE_OPTION) {
            File file = chooser.getSelectedFile();
            frame.getMediaPlayer().playMedia(file.getAbsolutePath());
        }
        File file = chooser.getSelectedFile();
        frame.getMediaPlayer().setSubTitleFile(file);
    }
    //实现软件退出
    public static void exit() {
        frame.getMediaPlayer().release();
        System.exit(0);
    }
    //调节音量
    public static void volume(int v) {
        frame.getMediaPlayer().setVolume(v);
    }
}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-109462-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...