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

通过Java利用vlc实现视频播放器

电脑杂谈  发布时间:2019-09-16 06:05:18  来源:网络整理

视频剪切合并器 手机版_视频剪切合并器安卓版_视频播放器java版

好久没写东西了,最近也开始整理自己当初学过的东西。在整理的过程中,我将要每天升级一些Java开发的过程中可能会用到的技术,比如,视频播放、office文档处理、二维码的生成和解读等技术。

本期,与你们分享的是运用vlc实现视频播放器的科技。首先一般介绍一下vlc视频播放器java版,简单来说,vlc是一个通用的开源的视频播放工具,它的官方是:。而我们今天使用的是vlcj,一个在Java里嵌入VLC的解决方案,它的官网文档是、。

下面开启正题,首先我们打算项目必须的jar包和vlc软件,vlc-3.0.6-win64和相关的jar,他们可以借助官网文档进行下载,当然也可以借助此链接下载,当把相关东西下载好以后,废话不多说,直接上代码。

第一个类文件:

package my;

import java.io.File;

import com.sun.jna.NativeLibrary;

import uk.co.caprica.vlcj.binding.RuntimeUtil;

public class App

{

public static void creatGUI()

{

AppFrame frame = new AppFrame();

frame.setVisible(true);

}

public static void main(String[] args)

{

File vlcRoot = new File("C:\\Users\\andy\\Desktop\\02 视频播放\\(2) 项目准备\\vlcj\\vlc-3.0.6");

NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName()

,vlcRoot.getAbsolutePath() );

javax.swing.SwingUtilities.invokeLater(new Runnable() {

@Override

public void run()

{

// TODO Auto-generated method stub

creatGUI();

}

});

}

}

第二类文件

视频剪切合并器安卓版_视频播放器java版_视频剪切合并器 手机版

package my;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.LayoutManager;

import java.io.File;

import javax.swing.Box;

import javax.swing.BoxLayout;

import javax.swing.JButton;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JProgressBar;

import javax.swing.JSlider;

import javax.swing.JTextField;

import javax.swing.SwingUtilities;

import javax.swing.Timer;

import javax.swing.filechooser.FileNameExtensionFilter;

import uk.co.caprica.vlcj.media.MediaRef;

import uk.co.caprica.vlcj.media.TrackType;

import uk.co.caprica.vlcj.player.base.MediaPlayer;

import uk.co.caprica.vlcj.player.base.MediaPlayerEventAdapter;

import uk.co.caprica.vlcj.player.base.MediaPlayerEventListener;

import uk.co.caprica.vlcj.player.component.EmbeddedMediaPlayerComponent;

public class AppFrame extends JFrame

{

// VLC控件

private EmbeddedMediaPlayerComponent vlc;

// 几个控件

JTextField pathField = new JTextField();

JButton openButton = new JButton("...");

视频剪切合并器安卓版_视频播放器java版_视频剪切合并器 手机版

// 进度显示

JSlider slider = new JSlider();

public AppFrame()

{

super("视频播放测试");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(640, 400);

// Content Pane

JPanel root = new JPanel();

this.setContentPane(root);

root.setLayout(new BorderLayout());

// 创建一个VLC控件

vlc = new EmbeddedMediaPlayerComponent();

root.add(vlc, BorderLayout.CENTER);

// 添加按钮控制

JPanel buttons = new JPanel();

root.add(buttons, BorderLayout.PAGE_START);

buttons.setLayout(new FlowLayout());

openButton.setFocusPainted(false);

buttons.add(pathField);

buttons.add(openButton);

// 选择视频文件,进行播放

openButton.addActionListener((e) -> {

openMedia();

});

//播放进度

Box bottom = Box.createVerticalBox();

bottom.add(slider);

slider.setMinimum(0);

slider.setMaximum(100);

slider.setValue(0);

视频剪切合并器安卓版_视频播放器java版_视频剪切合并器 手机版

root.add(bottom , BorderLayout.PAGE_END);

//初始化vlc

initVlcPlayer();

}

//初始化vlc

private void initVlcPlayer()

{

//播放视频中的几个事件

vlc.mediaPlayer().events().addMediaPlayerEventListener(new MediaPlayerEventAdapter() {

@Override

public void error(MediaPlayer mediaPlayer)

{

// TODO Auto-generated method stub

super.error(mediaPlayer);

}

@Override

public void finished(MediaPlayer mediaPlayer)

{

System.out.println("finished ...");

}

@Override

public void lengthChanged(MediaPlayer mediaPlayer, long newLength)

{

// TODO Auto-generated method stub

super.lengthChanged(mediaPlayer, newLength);

}

@Override

public void playing(MediaPlayer mediaPlayer)

{

System.out.println("playing ...");

}

视频剪切合并器 手机版_视频播放器java版_视频剪切合并器安卓版

@Override

public void positionChanged(MediaPlayer mediaPlayer, float newPosition)

{

System.out.println("positionChanged.. " + newPosition);

slider.setValue( (int)(100 * newPosition));

}

@Override

public void timeChanged(MediaPlayer mediaPlayer, long newTime)

{

// TODO Auto-generated method stub

super.timeChanged(mediaPlayer, newTime);

}

});

}

private void openMedia()

{

JFileChooser chooser = new JFileChooser();

FileNameExtensionFilter filter = new FileNameExtensionFilter("视频", "mp4", "avi", "wmv");

chooser.setFileFilter(filter);

int ret = chooser.showOpenDialog(this);

if (ret == JFileChooser.APPROVE_OPTION)

{

// 结果为:已经存在的一个文件

File file = chooser.getSelectedFile();

pathField.setText(file.getAbsolutePath());

// 开始播放视频

vlc.mediaPlayer().media().play(file.getAbsolutePath());

}

}

}

最后,这个示例是基于swing写的视频播放器java版,仅供参考。欢迎各位指出不足。


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

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

      • 周俊珂
        周俊珂

        #吴亦凡##吴亦凡1106生日快乐##吴亦凡BadGirl#我凡

      • 隋炀帝杨广
        隋炀帝杨广

        经济下滑并不全是坏事

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