📄 capturedialog.java
字号:
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 + -