java vlc_Java利用VLC开发简易视屏播放器

packagedeng.test;importjava.awt.BorderLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JPanel;importjavax.swing.JProgressBar;importjavax.swing.JSlider;importjavax.swing.border.EmptyBorder;importjavax.swing.event.ChangeEvent;importjavax.swing.event.ChangeListener;importuk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;importuk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;

@SuppressWarnings("serial")public class Window extendsJFrame{private JPanel contentPane; //顶层容器,整个播放页面的容器

private JMenuBar menuBar; //菜单栏

private JMenu mnFile,mnSetting,mnHelp; //文件菜单

private JMenuItem mnOpenVideo,mnExit; //文件菜单子目录,打开视屏、退出

private JPanel panel; //控制区域容器

private JProgressBar progress; //进度条

private JPanel progressPanel; //进度条容器

private JPanel controlPanel; //控制按钮容器

private JButton btnStop,btnPlay,btnPause; //控制按钮,停止、播放、暂停

private JSlider slider; //声音控制块

EmbeddedMediaPlayerComponent playerComponent;//媒体播放器组件

public static voidmain(String[] args) {

}//MainWindow构造方法,创建视屏播放的主界面

publicWindow(){

setTitle(" 小婷婷专属播放器 Copyright@dengchaoqun");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(200,80,900,600);

contentPane=newJPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

contentPane.setLayout(new BorderLayout(0,0));

setContentPane(contentPane);/*视频播放窗口中的菜单栏*/menuBar=newJMenuBar();

setJMenuBar(menuBar);

mnFile=new JMenu("文件"); //设置菜单名

menuBar.add(mnFile);

mnSetting=new JMenu("设置");

menuBar.add(mnSetting);

mnHelp=new JMenu("帮助");

menuBar.add(mnHelp);

mnOpenVideo=new JMenuItem("打开文件"); //设置文件菜单子目录打开文件

mnFile.add(mnOpenVideo);

mnExit=new JMenuItem("退出"); //设置文件菜单子目录退出

mnFile.add(mnExit);//打开文件

mnOpenVideo.addActionListener(newActionListener() {

@Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

PlayerMain.openVideo();

}

});//退出

mnExit.addActionListener(newActionListener() {

@Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub

PlayerMain.exit();

}

});/*视屏窗口中播放界面部分*/JPanel videoPane=newJPanel();

contentPane.add(videoPane, BorderLayout.CENTER);

videoPane.setLayout(new BorderLayout(0,0));

playerComponent=newEmbeddedMediaPlayerComponent();

videoPane.add(playerComponent);/*视屏窗口中控制部分*/panel=new JPanel(); //实例化控制区域容器

videoPane.add(panel,BorderLayout.SOUTH);

progressPanel=new JPanel(); //实例化进度条容器

panel.add(progressPanel, BorderLayout.NORTH);//添加进度条

progress=newJProgressBar();

progressPanel.add(progress);//panel.add(progress,BorderLayout.NORTH);

progress.addMouseListener(newMouseAdapter() {

@Overridepublic void mouseClicked(MouseEvent e){ //点击进度条调整视屏播放进度

int x=e.getX();

PlayerMain.jumpTo((float)x/progress.getWidth());

}

});

progress.setStringPainted(true);

controlPanel=new JPanel(); //实例化控制按钮容器

panel.add(controlPanel,BorderLayout.SOUTH);//添加停止按钮

btnStop=new JButton("停止");

btnStop.addMouseListener(newMouseAdapter() {

@Overridepublic voidmouseClicked(MouseEvent e) {//TODO Auto-generated method stub

PlayerMain.stop();

}

});

controlPanel.add(btnStop);//添加播放按钮

btnPlay=new JButton("播放");

btnPlay.addMouseListener(newMouseAdapter() {

@Overridepublic voidmouseClicked(MouseEvent e) {//TODO Auto-generated method stub

PlayerMain.play();

}

});

controlPanel.add(btnPlay);//添加暂停按钮

btnPause=new JButton("暂停");

btnPause.addMouseListener(newMouseAdapter() {

@Overridepublic voidmouseClicked(MouseEvent e) {//TODO Auto-generated method stub//PlayerMain.dispose();

PlayerMain.pause();

}

});

controlPanel.add(btnPause);//添加声音控制块

slider=newJSlider();

slider.setValue(80);

slider.setMaximum(100);

slider.addChangeListener(newChangeListener() {

@Overridepublic voidstateChanged(ChangeEvent e) {//TODO Auto-generated method stub

PlayerMain.setVol(slider.getValue());

}

});

controlPanel.add(slider);

}//获取播放媒体实例(某个视频)

publicEmbeddedMediaPlayer getMediaPlayer() {returnplayerComponent.getMediaPlayer();

}//获取进度条实例

publicJProgressBar getProgressBar() {returnprogress;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值