import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JSlider;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
@SuppressWarnings("serial")
public class Window extends JFrame{
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; //声音控制块
private Timer timer ;
EmbeddedMediaPlayerComponent playerComponent; //媒体播放器组件
public static void main(String[] args) {
}
//MainWindow构造方法,创建视屏播放的主界面
public Window(){
setTitle("视频播放器");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(200,80,900,600);
contentPane=new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0,0));
setContentPane(contentPane);
/*视频播放窗口中的菜单栏*/
menuBar=new JMenuBar();
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(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JFileChooser chooser = new JFileChooser();
int v = chooser.showOpenDialog(null);
if (v == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
getMediaPlayer().playMedia(file.getAbsolutePath());
}
}
});
//退出
mnExit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
exitActionPerformed();
}
});
/*视屏窗口中播放界面部分*/
JPanel videoPane=new JPanel();
contentPane.add(videoPane, BorderLayout.CENTER);
videoPane.setLayout(new BorderLayout(0,0));
playerComponent=new EmbeddedMediaPlayerComponent();
videoPane.add(playerComponent);
/*视屏窗口中控制部分*/
panel=new JPanel(); //实例化控制区域容器
videoPane.add(panel,BorderLayout.SOUTH);
progressPanel=new JPanel(); //实例化进度条容器
panel.add(progressPanel, BorderLayout.NORTH);
//添加进度条
progress=new JProgressBar();
progressPanel.add(progress);
//panel.add(progress,BorderLayout.NORTH);
progress.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e){ //点击进度条调整视屏播放进度
int x=e.getX();
getMediaPlayer().setTime((long) ((float)x/progress.getWidth() *getMediaPlayer().getLength()));
}
});
progress.setStringPainted(true);
controlPanel=new JPanel(); //实例化控制按钮容器
panel.add(controlPanel,BorderLayout.SOUTH);
//添加停止按钮
btnStop=new JButton("停止");
btnStop.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
getMediaPlayer().stop();
if(timer.isRunning()) {
timer.stop();//停止;
}
getProgressBar().setValue(-1);
}
});
controlPanel.add(btnStop);
//添加播放按钮
btnPlay=new JButton("播放");
btnPlay.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
getMediaPlayer().play();
//判断timer是否正在运行;
if(!timer.isRunning()) {
timer.start(); //启动;
}
}
});
controlPanel.add(btnPlay);
//添加暂停按钮
btnPause=new JButton("暂停");
btnPause.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
//PlayerMain.dispose();
getMediaPlayer().pause();
}
});
controlPanel.add(btnPause);
//添加声音控制块
slider=new JSlider();
slider.setValue(80);
slider.setMaximum(100);
slider.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
// TODO Auto-generated method stub
getMediaPlayer().setVolume(slider.getValue());
}
});
controlPanel.add(slider);
//视频表面的鼠标事件监听
playerComponent.getVideoSurface().addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Java利用VLC开发简易的视频播放器 (384个子文件)
Window.class 5KB
Window$1.class 1KB
Window$8.class 1KB
Window$9.class 1017B
Window$4.class 1016B
Window$3.class 979B
Window$5.class 898B
Window$7.class 886B
PlayerMain.class 778B
Window$6.class 721B
Window$2.class 613B
Window$10.class 588B
.classpath 606B
libavcodec_plugin.dll 18.82MB
libqt_plugin.dll 16.59MB
libx265_plugin.dll 4.71MB
libvpx_plugin.dll 3.54MB
libaccess_output_srt_plugin.dll 2.77MB
libaccess_srt_plugin.dll 2.77MB
libvlccore.dll 2.67MB
liblibass_plugin.dll 2.5MB
libvnc_plugin.dll 2.42MB
libdcp_plugin.dll 2.36MB
libskins2_plugin.dll 2.18MB
libadaptive_plugin.dll 2.16MB
libfreetype_plugin.dll 2.09MB
liblibbluray_plugin.dll 1.96MB
libgnutls_plugin.dll 1.66MB
libprojectm_plugin.dll 1.66MB
libmkv_plugin.dll 1.64MB
libsamplerate_plugin.dll 1.45MB
libzvbi_plugin.dll 1.44MB
libtaglib_plugin.dll 1.44MB
libschroedinger_plugin.dll 1.39MB
libstream_out_chromaprint_plugin.dll 1.21MB
libsid_plugin.dll 1.2MB
libstream_out_chromecast_plugin.dll 1.06MB
libxml_plugin.dll 1.04MB
libspatialaudio_plugin.dll 1.03MB
libupnp_plugin.dll 1.01MB
libx264_plugin.dll 1006KB
libswscale_plugin.dll 905KB
libdshow_plugin.dll 898KB
libdtv_plugin.dll 880KB
libsftp_plugin.dll 832KB
libcaca_plugin.dll 817KB
liblive555_plugin.dll 793KB
libstream_out_rtp_plugin.dll 776KB
libvorbis_plugin.dll 764KB
libsdl_image_plugin.dll 731KB
libremoteosd_plugin.dll 669KB
libaccess_output_livehttp_plugin.dll 662KB
librtp_plugin.dll 655KB
libts_plugin.dll 599KB
libglwin32_plugin.dll 489KB
libaccess_output_shout_plugin.dll 452KB
libmod_plugin.dll 446KB
libflac_plugin.dll 438KB
libarchive_plugin.dll 411KB
liblua_plugin.dll 383KB
libgme_plugin.dll 367KB
libmpg123_plugin.dll 343KB
libogg_plugin.dll 342KB
libopus_plugin.dll 339KB
libdirect3d11_plugin.dll 339KB
libaribsub_plugin.dll 336KB
libtheora_plugin.dll 325KB
libfluidsynth_plugin.dll 322KB
libmp4_plugin.dll 309KB
libgl_plugin.dll 299KB
libwgl_plugin.dll 297KB
libfaad_plugin.dll 293KB
libd3d11va_plugin.dll 280KB
libpng_plugin.dll 274KB
libdirect3d9_plugin.dll 261KB
libmux_mp4_plugin.dll 250KB
libdirectdraw_plugin.dll 244KB
libdxva2_plugin.dll 239KB
libjpeg_plugin.dll 235KB
libwingdi_plugin.dll 228KB
libgoom_plugin.dll 218KB
libdvdnav_plugin.dll 217KB
libdca_plugin.dll 205KB
libnfs_plugin.dll 203KB
libqsv_plugin.dll 201KB
libdirect3d11_filters_plugin.dll 192KB
libcdda_plugin.dll 191KB
libvlc.dll 183KB
libwebvtt_plugin.dll 181KB
libblend_plugin.dll 180KB
libmux_ts_plugin.dll 166KB
libplaylist_plugin.dll 165KB
libpacketizer_h264_plugin.dll 165KB
libmad_plugin.dll 164KB
libspeex_plugin.dll 162KB
libdeinterlace_plugin.dll 156KB
libdvdread_plugin.dll 154KB
libtwolame_plugin.dll 153KB
libpacketizer_hevc_plugin.dll 149KB
libhttps_plugin.dll 148KB
共 384 条
- 1
- 2
- 3
- 4
资源评论
单向箭头V
- 粉丝: 3
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功