⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 capturedialog.java

📁 基于java开发的 JMF 源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        panel = panelTemp;        panelTemp = new Panel ( new BorderLayout(6,6) );        panel.add ( panelTemp, BorderLayout.NORTH );        comboVideoDevice = new Choice ();        panelTemp.add ( comboVideoDevice, BorderLayout.CENTER );        nCount = vectorVideoDevices.size ();        boolContains = false;        for ( i = 0;  i < nCount;  i++ ) {            infoCaptureDevice = (CaptureDeviceInfo) vectorVideoDevices.elementAt ( i );            strDeviceName = infoCaptureDevice.getName ();            comboVideoDevice.addItem ( strDeviceName );            if ( boolContains == false  &&  dataCapture!= null                                &&  dataCapture.strDeviceName != null ) {                boolContains = dataCapture.strDeviceName.equals ( strDeviceName );            }        }        if ( boolContains == true )            comboVideoDevice.select ( dataCapture.strDeviceName );        comboVideoDevice.addItemListener ( this );        comboVideoDevice.setEnabled ( boolState );        panelVideoFormat = new Panel ( new BorderLayout(6,6) );        panel.add ( panelVideoFormat, BorderLayout.CENTER );        createVideoChooser ( formatDefault);        if ( chooserVideo != null )            chooserVideo.setEnabled ( boolState );        return ( panelVideo );    }    private void createVideoChooser ( VideoFormat formatDefault ) {        int                     i;        CaptureDeviceInfo       infoCaptureDevice;        Format                  arrFormats [];        if ( panelVideoFormat == null )            return;        panelVideoFormat.removeAll ();        i = comboVideoDevice.getSelectedIndex ();        infoCaptureDevice = (CaptureDeviceInfo) vectorVideoDevices.elementAt ( i );        arrFormats = infoCaptureDevice.getFormats ();        chooserVideo = new VideoFormatChooser ( arrFormats, formatDefault, false, null, true);        panelVideoFormat.add ( chooserVideo, BorderLayout.CENTER );    }    private Panel createAudioPanel () throws Exception {        int                 i, j;        int                 nCount;        JMPanel             panelAudio;        JMPanel             panelContent;        Panel               panel;        Panel               panelTemp;        CaptureDeviceInfo   infoCaptureDevice;        Format              arrFormats [];        boolean             boolState = true;        AudioFormat         formatDefault = null;        String              strDeviceName;        boolean             boolContains;        JMAppsCfg.CaptureDeviceData   dataCapture = null;        nCount = vectorDevices.size ();        vectorAudioDevices = new Vector ();        for ( i = 0;  i < nCount;  i++ ) {            infoCaptureDevice = (CaptureDeviceInfo) vectorDevices.elementAt ( i );            arrFormats = infoCaptureDevice.getFormats ();            for ( j = 0;  j < arrFormats.length;  j++ ) {                if ( arrFormats[j] instanceof AudioFormat ) {                    vectorAudioDevices.addElement ( infoCaptureDevice );                    break;                }            }        }        if ( vectorAudioDevices.isEmpty() )            return ( null );        if ( cfgJMApps != null )            dataCapture = cfgJMApps.getLastCaptureAudioData();        if ( dataCapture!= null ) {            boolState = dataCapture.boolUse;            if ( dataCapture.format instanceof AudioFormat )                formatDefault = (AudioFormat) dataCapture.format;        }        panelAudio = new JMPanel ( new BorderLayout(6,6) );        panelAudio.setEtchedBorder ();        panelContent = new JMPanel ( new BorderLayout(6,6) );        panelContent.setEmptyBorder ( 6, 6, 6, 6 );        panelAudio.add ( panelContent, BorderLayout.CENTER );        panel = panelContent;        panelTemp = new Panel ( new BorderLayout(6,6) );        panel.add ( panelTemp, BorderLayout.NORTH );        checkUseAudio = new Checkbox ( JMFI18N.getResource("jmstudio.capture.audio.usedevice"), boolState );        checkUseAudio.addItemListener ( this );        panelTemp.add ( checkUseAudio, BorderLayout.WEST );        panelTemp = new Panel ( new BorderLayout(6,6) );        panel.add ( panelTemp, BorderLayout.CENTER );        panel = panelTemp;        panelTemp = new Panel ( new BorderLayout(6,6) );        panel.add ( panelTemp, BorderLayout.NORTH );        comboAudioDevice = new Choice ();        panelTemp.add ( comboAudioDevice, BorderLayout.CENTER );        nCount = vectorAudioDevices.size ();        boolContains = false;        for ( i = 0;  i < nCount;  i++ ) {            infoCaptureDevice = (CaptureDeviceInfo) vectorAudioDevices.elementAt ( i );            strDeviceName = infoCaptureDevice.getName ();            comboAudioDevice.addItem ( strDeviceName );            if ( boolContains == false  &&  dataCapture!= null                                &&  dataCapture.strDeviceName != null ) {                boolContains = dataCapture.strDeviceName.equals ( strDeviceName );            }        }        if ( boolContains == true )            comboAudioDevice.select ( dataCapture.strDeviceName );        comboAudioDevice.addItemListener ( this );        comboAudioDevice.setEnabled ( boolState );        panelAudioFormat = new Panel ( new BorderLayout(6,6) );        panel.add ( panelAudioFormat, BorderLayout.CENTER );        createAudioChooser ( formatDefault );        if ( chooserAudio != null )            chooserAudio.setEnabled ( boolState );        return ( panelAudio );    }    private void createAudioChooser ( AudioFormat formatDefault ) {        int                     i;        CaptureDeviceInfo       infoCaptureDevice;        Format                  arrFormats [];        if ( panelAudioFormat == null )            return;        panelAudioFormat.removeAll ();        i = comboAudioDevice.getSelectedIndex ();        infoCaptureDevice = (CaptureDeviceInfo) vectorAudioDevices.elementAt ( i );        arrFormats = infoCaptureDevice.getFormats ();        chooserAudio = new AudioFormatChooser ( arrFormats, formatDefault, false, null );        panelAudioFormat.add ( chooserAudio, BorderLayout.CENTER );    }    private void saveCfgData () {        CaptureDeviceInfo               cdi;        JMAppsCfg.CaptureDeviceData   dataCapture;        if ( cfgJMApps == null )            return;        // audio        dataCapture = cfgJMApps.createCaptureDeviceDataObject ();        dataCapture.boolUse = isAudioDeviceUsed ();        if ( comboAudioDevice != null )            dataCapture.strDeviceName = comboAudioDevice.getSelectedItem ();        if ( chooserAudio != null )            dataCapture.format = chooserAudio.getFormat ();        cfgJMApps.setLastCaptureAudioData ( dataCapture );        // video        dataCapture = cfgJMApps.createCaptureDeviceDataObject ();        dataCapture.boolUse = isVideoDeviceUsed ();        if ( comboVideoDevice != null )            dataCapture.strDeviceName = comboVideoDevice.getSelectedItem ();        if ( chooserVideo != null )            dataCapture.format =  chooserVideo.getFormat ();        cfgJMApps.setLastCaptureVideoData ( dataCapture );    }    public void actionPerformed ( ActionEvent event ) {        int                  nIndex;        String               strCmd;        CaptureDeviceInfo    infoCaptureDevice;        strCmd = event.getActionCommand ();        if ( strCmd.equals(ACTION_OK) ) {            this.setAction ( ACTION_OK );            saveCfgData ();        }        else {            this.setAction ( ACTION_CANCEL );        }        dispose();    }    public void itemStateChanged ( ItemEvent event ) {        Object          objectSource;        boolean         boolEnable;        objectSource = event.getSource ();        if ( objectSource == checkUseVideo ) {            boolEnable = checkUseVideo.getState ();            comboVideoDevice.setEnabled ( boolEnable );            chooserVideo.setEnabled ( boolEnable );        }        else if ( objectSource == checkUseAudio ) {            boolEnable = checkUseAudio.getState ();            comboAudioDevice.setEnabled ( boolEnable );            chooserAudio.setEnabled ( boolEnable );        }        else if ( objectSource == comboVideoDevice ) {            createVideoChooser ( null );            validate ();        }        else if ( objectSource == comboAudioDevice ) {            createAudioChooser ( null );            validate ();        }    }    public void windowClosing ( WindowEvent event ) {        this.setAction ( ACTION_CANCEL );        this.dispose ();    }    public String toString () {        String                  strValue = "";        CaptureDeviceInfo       cdiAudio;        CaptureDeviceInfo       cdiVideo;    	MediaLocator            deviceURL;        cdiAudio = getAudioDevice();        if ( cdiAudio != null  &&  isAudioDeviceUsed() ) {            deviceURL = cdiAudio.getLocator ();            if ( strValue.length() > 0 )                strValue = strValue + " & ";            strValue = strValue + deviceURL.toString ();        }        cdiVideo = getVideoDevice ();        if ( cdiVideo != null  &&  isVideoDeviceUsed() ) {            deviceURL = cdiVideo.getLocator ();            if ( strValue.length() > 0 )                strValue = strValue + " & ";            strValue = strValue + deviceURL.toString ();        }        return ( strValue );    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -