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

📄 rtpdestpaneldescriptor.java

📁 FMJ(freedom media for java)是java视频开发的新选择
💻 JAVA
字号:
package net.sf.fmj.ui.wizards;import java.util.logging.Logger;import javax.media.control.TrackControl;import net.sf.fmj.media.datasink.rtp.ParsedRTPUrl;import net.sf.fmj.media.datasink.rtp.ParsedRTPUrlElement;import net.sf.fmj.media.datasink.rtp.RTPUrlParser;import net.sf.fmj.media.datasink.rtp.RTPUrlParserException;import net.sf.fmj.ui.objeditor.ComponentValidationException;import net.sf.fmj.ui.objeditor.ComponentValidator;import net.sf.fmj.ui.utils.ErrorDialog;import net.sf.fmj.ui.wizard.WizardPanelDescriptor;import net.sf.fmj.utility.LoggerSingleton;/** *  * @author Ken Larson * */public class RTPDestPanelDescriptor extends WizardPanelDescriptor {    	private static final Logger logger = LoggerSingleton.logger;    public static final String IDENTIFIER = RTPDestPanelDescriptor.class.getName();        private final RTPDestPanel panel;    private final RTPTransmitWizardConfig config;    private final RTPTransmitWizardResult result;    public RTPDestPanelDescriptor(final RTPTransmitWizardConfig config, RTPTransmitWizardResult result) {                panel = new RTPDestPanel();        setPanelDescriptorIdentifier(IDENTIFIER);        setPanelComponent(panel);        this.config = config;        this.result = result;            }    public Object getNextPanelDescriptor() {        return FINISH;    }        public Object getBackPanelDescriptor() {        return ContentAndTrackFormatPanelDescriptor.IDENTIFIER;    }        public RTPDestPanel getRTPDestPanel()    {	return (RTPDestPanel) getPanelComponent();    }        public boolean aboutToDisplayPanel(Object prevId) {            	if (prevId == getBackPanelDescriptor())    	{    		// TODO: remove old tracks    		    		// forward transition    		int numEnabled = 0;    		TrackControl[] trackControls = result.processor.getTrackControls();    		    		if (trackControls.length == 0)    		{	showError("No tracks available");    			return false;    		}    		    		for (int i = 0; i < trackControls.length; ++i)    		{    			if (!trackControls[i].isEnabled())    				continue;    			++numEnabled;    		}    		    		if (numEnabled < 1)    		{	showError("At least 1 track must be enabled");    			return false;    			    		}    		    		for (int i = 0; i < trackControls.length; ++i)    		{    			if (!trackControls[i].isEnabled())    				continue;    			    			boolean audio = true;	// TODO    			getRTPDestPanel().addTrack(i, audio);    			    			if (config.destUrl != null)    			{    				    				    				try    				{    					    					ParsedRTPUrl parsedRTPUrl = RTPUrlParser.parse(config.destUrl);        				// TODO: check type and index    	    			getRTPDestPanel().getTextSessionAddress(i).setText(parsedRTPUrl.elements[i].host);    	    			getRTPDestPanel().getTextPort(i).setText("" + parsedRTPUrl.elements[i].port);    	    			getRTPDestPanel().getComboTTL(i).setSelectedItem("" + parsedRTPUrl.elements[i].ttl);    				} catch (RTPUrlParserException ex)    				{    					logger.warning("Unable to parse RTP URL: " + config.destUrl + ": " + ex);    					    				}    			}    			    			    		}    		    	}//        panel3.setProgressValue(0);//        panel3.setProgressText("Connecting to Server...");////        getWizard().setNextFinishButtonEnabled(false);//        getWizard().setBackButtonEnabled(false);    	return true;            }        public boolean aboutToHidePanel(Object idOfNext) {            	if (idOfNext == getNextPanelDescriptor())    	{    		// finish transition    	    		ParsedRTPUrl destUrl = null;    		    		TrackControl[] trackControls = result.processor.getTrackControls();    		for (int i = 0; i < trackControls.length; ++i)    		{    			if (!trackControls[i].isEnabled())    				continue;    			    			boolean audio = true;	// TODO    			    	    	ComponentValidator v = new ComponentValidator();    	    	try {    				v.validateNotEmpty(getRTPDestPanel().getTextSessionAddress(i), getRTPDestPanel().getLabelSessionAddress());    				v.validateNotEmpty(getRTPDestPanel().getTextPort(i), getRTPDestPanel().getLabelPort());    				v.validateInteger(getRTPDestPanel().getTextPort(i), getRTPDestPanel().getLabelPort());    				v.validateNotEmpty(getRTPDestPanel().getComboTTL(i), getRTPDestPanel().getLabelTTL());    				v.validateInteger(getRTPDestPanel().getComboTTL(i), getRTPDestPanel().getLabelTTL());    	    	}     	    	catch (ComponentValidationException e) {    				ErrorDialog.showError(getRTPDestPanel(), e.getMessage());    				return false;    			}    	    	final String sessionAddress = getRTPDestPanel().getTextSessionAddress(i).getText();    			final int port = Integer.parseInt(getRTPDestPanel().getTextPort(i).getText());    			final int ttl = Integer.parseInt((String) getRTPDestPanel().getComboTTL(i).getSelectedItem());    			    		    			    			ParsedRTPUrlElement e = new ParsedRTPUrlElement();    			e.host = sessionAddress;    			e.port = port;    			e.ttl = ttl;    			e.type = audio ? ParsedRTPUrlElement.AUDIO : ParsedRTPUrlElement.VIDEO;    			    			logger.fine("ParsedRTPUrlElement: " + e);    			    			destUrl = new ParsedRTPUrl(e);	// TODO: other tracks    			    		}    		    		try			{    			config.destUrl = destUrl.toString();				result.step4_setDestUrlAndStart(config);			} catch (WizardStepException e)			{				showError(e);				return false;			}    		    		     		    	}    	    	return true;    }                }

⌨️ 快捷键说明

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