使用java创建一个简易的视屏播放器

来源:互联网 发布:cisco mac acl 编辑:程序博客网 时间:2024/06/07 22:56

http://blog.csdn.net/nankeyimengxihe/article/details/50419449


  目标:制作简易视屏播放器

  开发工具:eclipse4.5.1;VLC2.2.1

  具体内容:完成了视屏的加载、播放、退出的功能;实现了视屏播放过程中控制播放进程;实现播放过程中控制暂停。



最终程序效果图如下:






开发过程参考学习资源:极客学院视屏教程http://www.jikexueyuan.com/course/248_1.html?ss=1;

                                       Java framework for the vlc media playerhttp://capricasoftware.co.uk/#/projects/vlcj

                                       GitHub


一、环境配置,也是最重要的一步,如果开发环境没有配置好的话,其他的事都是瞎扯淡。

1.下载vlc(点击打开下载vlc链接:http://www.videolan.org/),下载自己电脑系统对应的版本并安装;

2.下载vlcj(点击打开下载vlcj链接http://capricasoftware.co.uk/#/projects/vlcj),把下载文件解压后将其目录下的

  jna-3.5.2.jar、platform-3.5.2.jar、vlcj-3.8.0.jar(不同版本后缀数字可能会不同)三个文件复制到对应的java工程目录(新建 lib 文件夹)下;

 


3.下载slf4j(点击打开slf4j下载链接http://www.slf4j.org/),下载文件后解压将其目录下的slf4j-api-1.7.13.jar、

   slf4j- nop-1.7.13.jar(不同版本后缀数字可能会不同)两个文件复制到对应的java工程目录(新建 lib 文件夹)下;


4. 将vlc安装目录下的libvlc.dll、libvlccore.dll 两个文件以及plugins问佳佳复制到对应的java工程目录下;


至此,环境文件的导入已经基本完成。进入eclipse将lib文件夹下面的5个 .jar 文件添加到工作路径。完成后java工程的目录结构如下:

java工程下的包里是具体的程序实现代码。

二.各种环境文件导入java工程之后还需要配置一下才可能够配置到最终的工作环境。

 1.在java工程下新建两个包,分别存放程序主文件和窗体文件。在在主程序包下建一个主类,主类的main函数作如下配置:

   

[java] view plain copy
print?
  1.   

[java] view plain copy
print?
  1.  public static void main(String[] args) {  
  2.     
  3.   //环境配置,将vlc sdk导入到eclipse  
  4.     
  5.   //if(RuntimeUtil.isWindows()){     }  
  6.   NativeLibrary.addSearchPath(  
  7.     RuntimeUtil.getLibVlcLibraryName(), ”D:\\Program Files\\VideoLAN\\VLC\\sdk\\lib”); //导入的路径是vlc的安装路径  
  8.   Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(),LibVlc.class);  
  9.         //System.out.println(LibVlc.INSTANCE.libvlc_get_version());  
 public static void main(String[] args) {    //环境配置,将vlc sdk导入到eclipse    //if(RuntimeUtil.isWindows()){     }  NativeLibrary.addSearchPath(    RuntimeUtil.getLibVlcLibraryName(), "D:\\Program Files\\VideoLAN\\VLC\\sdk\\lib"); //导入的路径是vlc的安装路径  Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(),LibVlc.class);        //System.out.println(LibVlc.INSTANCE.libvlc_get_version());
[java] view plain copy
print?
  1. }  
}

b保存后运行一下改程序,如果不报错的话则说明开发环境已经配置完成。如果报错的话可以参照上文提到的参考学习资源解决问题。


三.接下来就是具体的编码环节了,有问题可以参照java学习工具。


具体代码如下:

 主文件类PlayerMain:


[java] view plain copy
print?
  1. /*主程序*/  
  2.   
  3. package VideoPlayer.Main;  
  4.   
  5. import java.awt.EventQueue;  
  6. import java.io.File;  
  7.   
  8. import javax.swing.JFileChooser;  
  9. import javax.swing.SwingWorker;  
  10.   
  11. import com.sun.jna.Native;  
  12. import com.sun.jna.NativeLibrary;  
  13.   
  14. import VideoPlayer.Window.Window;  
  15. import uk.co.caprica.vlcj.binding.LibVlc;  
  16. import uk.co.caprica.vlcj.runtime.RuntimeUtil;  
  17.   
  18. public class PlayerMain {  
  19.   
  20.     static Window frame;  
  21.     //private static final String NATIVE_LIBRARY_SEARCH_PATH = “D:\\Program Files\\VideoLAN\\VLC\\sdk\\lib”;  
  22.   
  23.     public static void main(String[] args) {  
  24.           
  25.         //环境配置,将vlc sdk导入到eclipse  
  26.           
  27.         //if(RuntimeUtil.isWindows()){                  }  
  28.         NativeLibrary.addSearchPath(  
  29.                 RuntimeUtil.getLibVlcLibraryName(), ”D:\\Program Files\\VideoLAN\\VLC\\sdk\\lib”);  //导入的路径是vlc的安装路径  
  30.         Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(),LibVlc.class);  
  31.         //System.out.println(LibVlc.INSTANCE.libvlc_get_version());  
  32.   
  33.         //创建主程序界面运行窗体  
  34.         EventQueue.invokeLater(new Runnable() {  
  35.               
  36.             @Override  
  37.             public void run() {  
  38.                 // TODO Auto-generated method stub  
  39.                 try{  
  40.                     frame=new Window();  
  41.                     frame.setVisible(true);  
  42.                     //frame.getMediaPlayer().playMedia(“F:\\Videos\\Let.mp4”);  //直接播放视屏,参数是视屏文件的绝对路径  
  43.                     frame.getMediaPlayer().prepareMedia(”F:\\Videos\\Let_It_Go.mp4”);       //控制播放视屏  
  44.                     new SwingWorker<String, Integer>() {  
  45.   
  46.                         @Override  
  47.                         protected String doInBackground() throws Exception {  
  48.                             // TODO Auto-generated method stub  
  49.                             while (true) {  //获取视频播放进度并且按百分比显示  
  50.                                 long total=frame.getMediaPlayer().getLength();  
  51.                                 long curr=frame.getMediaPlayer().getTime();  
  52.                                 float percent=(float)curr/total;  
  53.                                 publish((int)(percent*100));  
  54.                                 Thread.sleep(100);  
  55.                             }     
  56.                             //return null;  
  57.                         }  
  58.                           
  59.                         protected void process(java.util.List<Integer> chunks) {  
  60.                             for(int v:chunks){  
  61.                                 frame.getProgressBar().setValue(v);  
  62.                             }   
  63.                         }  
  64.                     }.execute();  
  65.                 }catch(Exception e){  
  66.                     e.printStackTrace();  
  67.                 }  
  68.             }  
  69.         });  
  70.     }  
  71.       
  72.     //打开文件  
  73.     public static void openVideo() {  
  74.         JFileChooser chooser=new JFileChooser();  
  75.         int v=chooser.showOpenDialog(null);  
  76.         if(v==JFileChooser.APPROVE_OPTION){  
  77.             File file=chooser.getSelectedFile();  
  78.             frame.getMediaPlayer().playMedia(file.getAbsolutePath());  
  79.         }  
  80.     }  
  81.       
  82.     //退出播放  
  83.     public static void exit() {  
  84.         frame.getMediaPlayer().release();  
  85.         System.exit(0);  
  86.     }  
  87.   
  88.     //实现播放按钮的方法  
  89.     public static void play() {  
  90.         frame.getMediaPlayer().play();  
  91.     }  
  92.       
  93.     //实现暂停按钮的方法  
  94.     public static void pause() {  
  95.         frame.getMediaPlayer().pause();  
  96.     }  
  97.       
  98.     //实现停止按钮的方法  
  99.     public static void stop() {  
  100.         frame.getMediaPlayer().stop();  
  101.     }  
  102.       
  103.     //实现点击进度条跳转的方法  
  104.     public static void jumpTo(float to) {  
  105.         frame.getMediaPlayer().setTime((long)(to*frame.getMediaPlayer().getLength()));  
  106.     }  
  107.       
  108.     //实现控制声音的方法  
  109.     public static void setVol(int v) {  
  110.         frame.getMediaPlayer().setVolume(v);  
  111.     }  
  112.       
  113. }  
/*主程序*/package VideoPlayer.Main;import java.awt.EventQueue;import java.io.File;import javax.swing.JFileChooser;import javax.swing.SwingWorker;import com.sun.jna.Native;import com.sun.jna.NativeLibrary;import VideoPlayer.Window.Window;import uk.co.caprica.vlcj.binding.LibVlc;import uk.co.caprica.vlcj.runtime.RuntimeUtil;public class PlayerMain {    static Window frame;    //private static final String NATIVE_LIBRARY_SEARCH_PATH = "D:\\Program Files\\VideoLAN\\VLC\\sdk\\lib";    public static void main(String[] args) {        //环境配置,将vlc sdk导入到eclipse        //if(RuntimeUtil.isWindows()){                  }        NativeLibrary.addSearchPath(                RuntimeUtil.getLibVlcLibraryName(), "D:\\Program Files\\VideoLAN\\VLC\\sdk\\lib");  //导入的路径是vlc的安装路径        Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(),LibVlc.class);        //System.out.println(LibVlc.INSTANCE.libvlc_get_version());        //创建主程序界面运行窗体        EventQueue.invokeLater(new Runnable() {            @Override            public void run() {                // TODO Auto-generated method stub                try{                    frame=new Window();                    frame.setVisible(true);                    //frame.getMediaPlayer().playMedia("F:\\Videos\\Let.mp4");  //直接播放视屏,参数是视屏文件的绝对路径                    frame.getMediaPlayer().prepareMedia("F:\\Videos\\Let_It_Go.mp4");       //控制播放视屏                    new SwingWorker<String, Integer>() {                        @Override                        protected String doInBackground() throws Exception {                            // TODO Auto-generated method stub                            while (true) {  //获取视频播放进度并且按百分比显示                                long total=frame.getMediaPlayer().getLength();                                long curr=frame.getMediaPlayer().getTime();                                float percent=(float)curr/total;                                publish((int)(percent*100));                                Thread.sleep(100);                            }                               //return null;                        }                        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 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 exit() {        frame.getMediaPlayer().release();        System.exit(0);    }    //实现播放按钮的方法    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);    }}


窗体文件类Window:



[java] view plain copy
print?
  1. /*视屏播放器主界面*/  
  2.   
  3. package VideoPlayer.Window;  
  4.   
  5. import java.awt.BorderLayout;  
  6. import java.awt.EventQueue;  
  7. import java.awt.event.ActionEvent;  
  8. import java.awt.event.ActionListener;  
  9. import java.awt.event.MouseAdapter;  
  10. import java.awt.event.MouseEvent;  
  11. import java.awt.event.MouseListener;  
  12. import java.beans.PropertyChangeEvent;  
  13. import java.beans.PropertyChangeListener;  
  14.   
  15. import javax.swing.JButton;  
  16. import javax.swing.JFrame;  
  17. import javax.swing.JMenu;  
  18. import javax.swing.JMenuBar;  
  19. import javax.swing.JMenuItem;  
  20. import javax.swing.JPanel;  
  21. import javax.swing.JProgressBar;  
  22. import javax.swing.JSlider;  
  23. import javax.swing.border.EmptyBorder;  
  24. import javax.swing.event.ChangeEvent;  
  25. import javax.swing.event.ChangeListener;  
  26.   
  27. import VideoPlayer.Main.PlayerMain;  
  28. import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;  
  29. import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;  
  30.   
  31. public class Window extends JFrame{  
  32.       
  33.     private JPanel contentPane; //顶层容器,整个播放页面的容器  
  34.     private JMenuBar menuBar;   //菜单栏  
  35.     private JMenu mnFile,mnSetting,mnHelp;  //文件菜单  
  36.     private JMenuItem mnOpenVideo,mnExit;   //文件菜单子目录,打开视屏、退出  
  37.     private JPanel panel;   //控制区域容器  
  38.     private JProgressBar progress;  //进度条  
  39.     private JPanel progressPanel;   //进度条容器  
  40.     private JPanel controlPanel;    //控制按钮容器  
  41.     private JButton btnStop,btnPlay,btnPause;   //控制按钮,停止、播放、暂停  
  42.     private JSlider slider;     //声音控制块  
  43.       
  44.       
  45.     EmbeddedMediaPlayerComponent playerComponent;   //媒体播放器组件  
  46.       
  47.     public static void main(String[] args) {  
  48.           
  49.     }  
  50.   
  51.     //MainWindow构造方法,创建视屏播放的主界面  
  52.     public Window(){  
  53.         setTitle(”   VideoPlayer   Copyright@2015  by 南柯一梦”);  
  54.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  55.         setBounds(200,80,900,600);  
  56.         contentPane=new JPanel();  
  57.         contentPane.setBorder(new EmptyBorder(5555));  
  58.         contentPane.setLayout(new BorderLayout(0,0));  
  59.         setContentPane(contentPane);  
  60.           
  61.           
  62.         /*视频播放窗口中的菜单栏*/  
  63.         menuBar=new JMenuBar();  
  64.         setJMenuBar(menuBar);  
  65.           
  66.         mnFile=new JMenu(“文件”);     //设置菜单名  
  67.         menuBar.add(mnFile);  
  68.         mnSetting=new JMenu(“设置”);  
  69.         menuBar.add(mnSetting);  
  70.         mnHelp=new JMenu(“帮助”);  
  71.         menuBar.add(mnHelp);  
  72.           
  73.         mnOpenVideo =new JMenuItem(“打开文件”); //设置文件菜单子目录打开文件  
  74.         mnFile.add(mnOpenVideo);  
  75.           
  76.         mnExit =new JMenuItem(“退出”);    //设置文件菜单子目录退出  
  77.         mnFile.add(mnExit);  
  78.           
  79.         //打开文件  
  80.         mnOpenVideo.addActionListener(new ActionListener() {  
  81.               
  82.             @Override  
  83.             public void actionPerformed(ActionEvent e) {  
  84.                 // TODO Auto-generated method stub  
  85.                 PlayerMain.openVideo();  
  86.             }  
  87.         });  
  88.           
  89.         //退出  
  90.         mnExit.addActionListener(new ActionListener() {  
  91.               
  92.             @Override  
  93.             public void actionPerformed(ActionEvent e) {  
  94.                 // TODO Auto-generated method stub  
  95.                 PlayerMain.exit();  
  96.             }  
  97.         });  
  98.           
  99.           
  100.         /*视屏窗口中播放界面部分*/  
  101.         JPanel videoPane=new JPanel();  
  102.         contentPane.add(videoPane, BorderLayout.CENTER);  
  103.         videoPane.setLayout(new BorderLayout(0,0));  
  104.           
  105.         playerComponent=new EmbeddedMediaPlayerComponent();  
  106.         videoPane.add(playerComponent);  
  107.           
  108.         /*视屏窗口中控制部分*/  
  109.           
  110.         panel=new JPanel();     //实例化控制区域容器  
  111.         videoPane.add(panel,BorderLayout.SOUTH);  
  112.           
  113.         progressPanel=new JPanel(); //实例化进度条容器  
  114.         panel.add(progressPanel, BorderLayout.NORTH);  
  115.   
  116.         //添加进度条  
  117.         progress=new JProgressBar();      
  118.         progressPanel.add(progress);  
  119.         //panel.add(progress,BorderLayout.NORTH);  
  120.         progress.addMouseListener(new MouseAdapter() {  
  121.             @Override  
  122.             public void mouseClicked(MouseEvent e){     //点击进度条调整视屏播放进度  
  123.                 int x=e.getX();  
  124.                 PlayerMain.jumpTo((float)x/progress.getWidth());  
  125.             }  
  126.         });  
  127.         progress.setStringPainted(true);  
  128.           
  129.           
  130.         controlPanel=new JPanel();      //实例化控制按钮容器  
  131.         panel.add(controlPanel,BorderLayout.SOUTH);  
  132.           
  133.         //添加停止按钮  
  134.         btnStop=new JButton(“停止”);  
  135.         btnStop.addMouseListener(new MouseAdapter() {  
  136.             @Override  
  137.             public void mouseClicked(MouseEvent e) {  
  138.                 // TODO Auto-generated method stub  
  139.                 PlayerMain.stop();  
  140.             }  
  141.         });  
  142.         controlPanel.add(btnStop);  
  143.           
  144.         //添加播放按钮  
  145.         btnPlay=new JButton(“播放”);  
  146.         btnPlay.addMouseListener(new MouseAdapter() {  
  147.             @Override  
  148.             public void mouseClicked(MouseEvent e) {  
  149.                 // TODO Auto-generated method stub  
  150.                 PlayerMain.play();  
  151.             }  
  152.         });  
  153.         controlPanel.add(btnPlay);  
  154.           
  155.         //添加暂停按钮  
  156.         btnPause=new JButton(“暂停”);  
  157.         btnPause.addMouseListener(new MouseAdapter() {  
  158.             @Override  
  159.             public void mouseClicked(MouseEvent e) {  
  160.                 // TODO Auto-generated method stub  
  161.                 PlayerMain.pause();  
  162.             }  
  163.         });  
  164.         controlPanel.add(btnPause);  
  165.           
  166.         //添加声音控制块  
  167.         slider=new JSlider();  
  168.         slider.setValue(80);  
  169.         slider.setMaximum(100);  
  170.         slider.addChangeListener(new ChangeListener() {  
  171.               
  172.             @Override  
  173.             public void stateChanged(ChangeEvent e) {  
  174.                 // TODO Auto-generated method stub  
  175.                 PlayerMain.setVol(slider.getValue());  
  176.             }  
  177.         });  
  178.         controlPanel.add(slider);  
  179.     }  
  180.       
  181.     //获取播放媒体实例(某个视频)  
  182.     public EmbeddedMediaPlayer getMediaPlayer() {  
  183.         return playerComponent.getMediaPlayer();  
  184.     }  
  185.       
  186.     //获取进度条实例  
  187.     public JProgressBar getProgressBar() {  
  188.         return progress;  
  189.     }  
  190.       
  191. }  
/*视屏播放器主界面*/package VideoPlayer.Window;import java.awt.BorderLayout;import java.awt.EventQueue;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.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;import javax.swing.JButton;import javax.swing.JFrame;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.border.EmptyBorder;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import VideoPlayer.Main.PlayerMain;import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;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;     //声音控制块    EmbeddedMediaPlayerComponent playerComponent;   //媒体播放器组件    public static void main(String[] args) {    }    //MainWindow构造方法,创建视屏播放的主界面    public Window(){        setTitle("   VideoPlayer   Copyright@2015  by 南柯一梦");        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                PlayerMain.openVideo();            }        });        //退出        mnExit.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                // TODO Auto-generated method stub                PlayerMain.exit();            }        });        /*视屏窗口中播放界面部分*/        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();                PlayerMain.jumpTo((float)x/progress.getWidth());            }        });        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                PlayerMain.stop();            }        });        controlPanel.add(btnStop);        //添加播放按钮        btnPlay=new JButton("播放");        btnPlay.addMouseListener(new MouseAdapter() {            @Override            public void mouseClicked(MouseEvent e) {                // TODO Auto-generated method stub                PlayerMain.play();            }        });        controlPanel.add(btnPlay);        //添加暂停按钮        btnPause=new JButton("暂停");        btnPause.addMouseListener(new MouseAdapter() {            @Override            public void mouseClicked(MouseEvent e) {                // TODO Auto-generated method stub                PlayerMain.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                PlayerMain.setVol(slider.getValue());            }        });        controlPanel.add(slider);    }    //获取播放媒体实例(某个视频)    public EmbeddedMediaPlayer getMediaPlayer() {        return playerComponent.getMediaPlayer();    }    //获取进度条实例    public JProgressBar getProgressBar() {        return progress;    }}



至此使用java开发简易的视屏播放器就已经完成了。


                                                                                         2015年12月28日     By 七戒


                </div>