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

http://blog.youkuaiyun.com/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函数作如下配置:

   

  1.   

  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());
  1. }  
}

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


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


具体代码如下:

 主文件类PlayerMain:


  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:



  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>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值