观看记录
  • 我的观影记录
登录
测试首页java使用jmf媒体框架调用摄像头在窗口上显示

java使用jmf媒体框架调用摄像头在窗口上显示

         前次经验安装了jmf媒体框架,怎么利用媒体框架,下面分享一下用java挪用摄像头在窗口上显示。你没有安装jmf,看看经验链接,我写的经验对你进修java有帮忙的话,给我投票或者点赞!

http://v.youku.com/v_show/id_XMzk1NjU2NDcyMA==.html

0安装媒体框架jmf2-1-1

0awt-image转换当作swt-image

0android线框图怎么画

工具/原料

  • netbeans ide 8.1
  • jmf2-1-1

方式/步骤

  1. 1

    新建一个java项目,项目标名字为javasxt.。

  2. 2

    新建一个窗口(jframe),,窗口的类名Javasxt。

  3. 3

    打开这个javasxt.java这个文件,在窗口中增添一个面板jpanel,这个面板是用来显示摄像头的画面。

  4. 4

    我的摄像头是640*480的分辩率,所以把增添的面板的尺寸改当作宽度640,高度480,把窗口显示位置设置为屏幕中心显示。

  5. 5

    把面板增添一个边框。

  6. 6

    把媒体框架(jmf)的库函数包含在项目中。

  7. 7

    在初始化函数中增添代码:

    引用摄像头

     CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");

  8. 8

    建立一个数据源:

    MediaLocator med=new MediaLocator("vfw://0");

  9. 9

    新建一个播放对象:

    player=Manager.createRealizedPlayer(med);

  10. 10

    把播放 对象的显示画面的部件增添到用户新建的面板中:

    if(player.getVisualComponent()!=null){

                    jPanel1.add(player.getVisualComponent());

                    player.start();

                }

  11. 11

    运行项目窗口显示摄像头拍摄的画面。

  12. 12

    源码:

    import java.io.IOException;

    import java.util.logging.Level;

    import java.util.logging.Logger;

    import javax.media.CannotRealizeException;

    import javax.media.Manager;

    import javax.media.MediaLocator;

    import javax.media.NoPlayerException;

    import javax.media.Player;

    import javax.media.cdm.CaptureDeviceManager;

    /*

     * To change this license header, choose License Headers in Project Properties.

     * To change this template file, choose Tools | Templates

     * and open the template in the editor.

     */

    /**

     *

     * @author Administrator

     */

    public class Javasxt extends javax.swing.JFrame {

        private Player player;

        /**

         * Creates new form Javasxt

         */

        public Javasxt() {

            try {

                initComponents();

                CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");

                MediaLocator med=new MediaLocator("vfw://0");

                player=Manager.createRealizedPlayer(med);

                if(player.getVisualComponent()!=null){

                    jPanel1.add(player.getVisualComponent());

                    player.start();

                }

            } catch (IOException | NoPlayerException | CannotRealizeException ex) {

                Logger.getLogger(Javasxt.class.getName()).log(Level.SEVERE, null, ex);

            }

        }

        /**

         * This method is called from within the constructor to initialize the form.

         * WARNING: Do NOT modify this code. The content of this method is always

         * regenerated by the Form Editor.

         */

        @SuppressWarnings("unchecked")

        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          

        private void initComponents() {

            jFrame1 = new javax.swing.JFrame();

            jPanel2 = new javax.swing.JPanel();

            jPanel1 = new javax.swing.JPanel();

            jFrame1.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

            jPanel2.setMinimumSize(new java.awt.Dimension(640, 480));

            jPanel2.setName(""); // NOI18N

            javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);

            jPanel2.setLayout(jPanel2Layout);

            jPanel2Layout.setHorizontalGroup(

                jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                .addGap(0, 640, Short.MAX_VALUE)

            );

            jPanel2Layout.setVerticalGroup(

                jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                .addGap(0, 480, Short.MAX_VALUE)

            );

            javax.swing.GroupLayout jFrame1Layout = new javax.swing.GroupLayout(jFrame1.getContentPane());

            jFrame1.getContentPane().setLayout(jFrame1Layout);

            jFrame1Layout.setHorizontalGroup(

                jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                .addGroup(jFrame1Layout.createSequentialGroup()

                    .addContainerGap()

                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

            );

            jFrame1Layout.setVerticalGroup(

                jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                .addGroup(jFrame1Layout.createSequentialGroup()

                    .addContainerGap()

                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

            );

            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

            jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

            jPanel1.setMinimumSize(new java.awt.Dimension(640, 480));

            jPanel1.setName(""); // NOI18N

            jPanel1.setPreferredSize(new java.awt.Dimension(640, 480));

            javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);

            jPanel1.setLayout(jPanel1Layout);

            jPanel1Layout.setHorizontalGroup(

                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                .addGap(0, 636, Short.MAX_VALUE)

            );

            jPanel1Layout.setVerticalGroup(

                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                .addGap(0, 476, Short.MAX_VALUE)

            );

            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

            getContentPane().setLayout(layout);

            layout.setHorizontalGroup(

                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                .addGroup(layout.createSequentialGroup()

                    .addContainerGap()

                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

            );

            layout.setVerticalGroup(

                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

                .addGroup(layout.createSequentialGroup()

                    .addContainerGap()

                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)

                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

            );

            pack();

            setLocationRelativeTo(null);

        }// </editor-fold>                        

        /**

         * @param args the command line arguments

         */

        public static void main(String args[]) {

           

            //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional)">

            /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

             * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 

             */

            try {

                for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {

                    if ("Nimbus".equals(info.getName())) {

                        javax.swing.UIManager.setLookAndFeel(info.getClassName());

                        break;

                    }

                }

            } catch (ClassNotFoundException ex) {

                java.util.logging.Logger.getLogger(Javasxt.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

            } catch (InstantiationException ex) {

                java.util.logging.Logger.getLogger(Javasxt.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

            } catch (IllegalAccessException ex) {

                java.util.logging.Logger.getLogger(Javasxt.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

            } catch (javax.swing.UnsupportedLookAndFeelException ex) {

                java.util.logging.Logger.getLogger(Javasxt.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);

            }

            //</editor-fold>

           

            java.awt.EventQueue.invokeLater(new Runnable() {

                public void run() {

                    new Javasxt().setVisible(true);

                }

            });

        }

        // Variables declaration - do not modify                     

        private javax.swing.JFrame jFrame1;

        private javax.swing.JPanel jPanel1;

        private javax.swing.JPanel jPanel2;

        // End of variables declaration                   

    }

“java使用jmf媒体框架调用摄像头在窗口上显示”关联的文章

  • 如何关闭皮皮搞笑精彩内容消息通知

    皮皮搞笑是一款手机搞笑社区App,让用户笑到没心没肺,又忍不住感动流泪的温暖家园,那么如何关闭皮皮搞笑精彩内容消息通知以满足不同用户的需求呢?

    1小时前0阅读

    如何关闭皮皮搞笑精彩内容消息通知
  • win7系统找不到宽带连接怎么办

    现如今很多用户都喜欢使用win7系统,而在使用win7系统的过程中做的最多的就是上网了。Win7系统上网离不开宽带连接,如果win7宽带连接找不到了,应该怎么办呢?下面就让小编为大家带来win7系统找不到宽带连接解决方法

    1小时前0阅读

    win7系统找不到宽带连接怎么办
  • 新版QQ音乐怎么关闭底部的直播导航

    新版QQ音乐怎么关闭底部的直播导航?下面请大家随小编一起来看看操作的方法吧。

    1小时前0阅读

    新版QQ音乐怎么关闭底部的直播导航
  • 怎样查询高速实时路况?

    要出行怎么查询高速实时路况?我们用地图就可以了,在地图上就可以看到实际的路况的,下面详细来看下。

    1小时前0阅读

  • 六芒星手势密码教程
  • 教师讲课过程评价标准

    教师是太阳底下最光辉的职业,但是成为教师之路也是要经历重重考验的,下面给大家说说教师讲课过程评价标准

    1小时前0阅读

  • 酚醛铝箔夹芯板

    酚醛铝箔夹芯板是由酚醛泡沫与两层亚光铝箔经过特殊工艺复合而成。外膜材料为经过高温固化的高分子膜,可有效的防止紫外线及气体腐蚀,并与铝箔结合牢固,又能与酚醛泡沫形成聚合物,从而保证象圆酚醛铝箔夹芯板的质量稳定。

    1小时前0阅读

  • Xperia XZ2 Premium配置如何

    Xperia XZ2 Premium是索尼在4月16日悄悄发布的新机,而且没进行预热,下面来简单了解一下配置。

    1小时前0阅读

  • PLSQL破解,无需注册码和破解工具

    PL/SQL Developer过期了,又没有注册码,又不想花钱买,而且事情又非常急,这时候怎么办?不要着急,请随小编一起解决这种情况吧。

    1小时前0阅读

  • Win11按capslock切换不了大小写怎么解决

    有朋友不知道在哪里设置,下面小编就给大家分享详细的设置方法,有需要帮助的朋友可以参考下这篇经验,希望能对大家有所帮助。

    2小时前0阅读

    Win11按capslock切换不了大小写怎么解决
切换深色外观
留言
视频编辑修改
回到顶部
首页
手机数码
医疗健康
金融管理
社交情感
无名