java视频播放器源码_Java视频播放器源码下载

【实例简介】

【实例截图】

【核心代码】

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);

}

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值