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

📄 playerpanelprefs.java

📁 FMJ(freedom media for java)是java视频开发的新选择
💻 JAVA
字号:
package net.sf.fmj.ui.application;import java.io.File;import java.io.IOException;import java.io.Reader;import java.io.Writer;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.logging.Logger;import javax.media.protocol.ContentDescriptor;import net.sf.fmj.ui.wizards.ProcessorWizardConfig;import net.sf.fmj.ui.wizards.RTPTransmitWizardConfig;import net.sf.fmj.ui.wizards.TrackConfig;import net.sf.fmj.ui.wizards.TranscodeWizardConfig;import net.sf.fmj.utility.LoggerSingleton;import net.sf.fmj.utility.SerializationUtils;import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;import org.jdom.output.Format;import org.jdom.output.XMLOutputter;/** *  * @author Ken Larson * */public class PlayerPanelPrefs{	private static final Logger logger = LoggerSingleton.logger;	/** versio of the xml file format */	private static final String version = "0.1";		public List recentUrls = new ArrayList();	public boolean autoPlay = true;	public boolean autoLoop = false;		public RTPTransmitWizardConfig rtpTransmitWizardConfig = new RTPTransmitWizardConfig();	public TranscodeWizardConfig transcodeWizardConfig = new TranscodeWizardConfig();		public static File getFile() 	{		/** the name of the file used to store the prefs */		final String filename = ".fmjstudio.prefs.xml"; 		String home = System.getProperty("user.home");		return new File(home + File.separator + filename);	}		/* ---------------------- XML operations --------------------- */	private static final String ELEMENT_REGISTRY = "fmj-studio-prefs";	private static final String ATTR_VERSION = "version";		private static final String ELEMENT_RECENT_URLS = "recent-urls";		private static final String ELEMENT_RECENT_URL = "url";	private static final String ELEMENT_RTP_TRANSMIT_WIZARD_CONFIG = "rtp-transmit-wizard-config";		private static final String ELEMENT_TRANSCODE_WIZARD_CONFIG = "transcode-wizard-config";		/**	 * Load the Registry data from a Reader/	 */	public void load(Reader reader) throws IOException 	{				// read the registry		try 		{			SAXBuilder saxBuilder = new SAXBuilder();			Document document = saxBuilder.build(reader);						// read all the data from the document and place into data structures.			loadDocument(document);		}		catch (JDOMException e) 		{			// problem parsing XML.			throw new IOException(e.getMessage());		}	}		/**	 * Write the registry data to the Writer.	 * 	 * @param writer destination for the registry data.	 * @throws IOException	 */	public void write(Writer writer) throws IOException 	{		// build document from registry data structures		Document document = buildDocument();				XMLOutputter xmlOutputter = new XMLOutputter();		xmlOutputter.setFormat(Format.getPrettyFormat());		xmlOutputter.output(document, writer);	}		private void loadDocument(Document document) throws IOException 	{				Element rootElement = document.getRootElement();		String versionString = rootElement.getAttributeValue(ATTR_VERSION);				// TODO use version String		logger.info("FMJStudio preferences document version " + versionString);				Element element_RecentUrls = rootElement.getChild(ELEMENT_RECENT_URLS);		parseElement_RecentUrls(element_RecentUrls);				// auto-start		{			Element e = rootElement.getChild("auto-play");			if (e != null)				autoPlay = e.getTextTrim().equals("" + true);		}				// auto-loop		{			Element e = rootElement.getChild("auto-loop");			if (e != null)				autoLoop = e.getTextTrim().equals("" + true);		}				parseElement_RTPTransmitWizardConfig(rootElement.getChild(ELEMENT_RTP_TRANSMIT_WIZARD_CONFIG));		parseElement_TranscodeWizardConfig(rootElement.getChild(ELEMENT_TRANSCODE_WIZARD_CONFIG));	}	/**	 * Builds a Document from the registry data structures.	 * 	 * @return the Document.	 * @throws IOException 	 */	private Document buildDocument() throws IOException 	{		Document document = new Document();				Element rootElement = new Element(ELEMENT_REGISTRY);		rootElement.setAttribute(ATTR_VERSION, version);				document.setRootElement(rootElement);		rootElement.addContent(buildElement_RecentUrls());				// auto-start		{			Element e = new Element("auto-play");			e.setText("" + autoPlay);			rootElement.addContent(e);		}		// auto-loop		{			Element e = new Element("auto-loop");			e.setText("" + autoLoop);			rootElement.addContent(e);		}				rootElement.addContent(buildElement_RTPTransmitWizardConfig());		rootElement.addContent(buildElement_TranscodeWizardConfig());						return document;	}		private void parseElement_RecentUrls(Element element) {		recentUrls.clear();		List list = element.getChildren(ELEMENT_RECENT_URL);		for (int i=0; i<list.size(); i++) 		{			Element stringElement = (Element) list.get(i);			recentUrls.add(stringElement.getTextTrim());		}	}		private Element buildElement_RecentUrls() 	{		Element element = new Element(ELEMENT_RECENT_URLS);				Iterator iterator = recentUrls.iterator();		while (iterator.hasNext()) 		{			String s = (String) iterator.next();			Element element_RecentUrl = new Element(ELEMENT_RECENT_URL);			element_RecentUrl.setText(s);			element.addContent(element_RecentUrl);		}		return element;	}		private static void parseElement_ProcessorWizardConfig(Element element, ProcessorWizardConfig processorWizardConfig) 	{				{			final Element e = element.getChild("source-url");			if (e != null)				processorWizardConfig.url = e.getTextTrim();		}		{			final Element e = element.getChild("content-descriptor-encoding");			if (e != null)				processorWizardConfig.contentDescriptor = new ContentDescriptor(e.getTextTrim());		}						{			final Element e = element.getChild("track-configs");			if (e != null)			{				final List trackConfigElements = e.getChildren("track-config");				final TrackConfig[] trackConfigs = new TrackConfig[trackConfigElements.size()];				for (int j = 0; j < trackConfigElements.size(); ++j) 				{					trackConfigs[j] = new TrackConfig();										final Element e2 = (Element) trackConfigElements.get(j);										// enabled					{						final Element e3 = e2.getChild("enabled");						if (e3 != null)						{							trackConfigs[j].enabled = e3.getTextTrim().equals("" + true);						}					}										// format:					{						final Element e3 = e2.getChild("format");						if (e3 != null)						{							try							{								trackConfigs[j].format = SerializationUtils.deserialize(e3.getTextTrim());							} catch (IOException e1)							{								logger.warning("Unable to deserialize format: " + e3.getTextTrim() + ": " + e1);							} catch (ClassNotFoundException e1)							{								logger.warning("Unable to deserialize format: " + e3.getTextTrim() + ": " + e1);							}						}					}									}			}		}				{			final Element e = element.getChild("dest-url");			if (e != null)			{				final String destUrlStr = e.getTextTrim();				processorWizardConfig.destUrl = destUrlStr;//				try//				{//					//					rtpTransmitWizardConfig.destUrl = RTPUrlParser.parse(destUrlStr);//				} catch (RTPUrlParserException ex)//				{//					logger.warning("Unable to parse RTP URL: " + destUrlStr + ": " + e);//					//				}			}		}			}		private void parseElement_RTPTransmitWizardConfig(Element element) 	{		rtpTransmitWizardConfig = new RTPTransmitWizardConfig();		if (element != null)			parseElement_ProcessorWizardConfig(element, rtpTransmitWizardConfig);	}		private void parseElement_TranscodeWizardConfig(Element element)	{		transcodeWizardConfig = new TranscodeWizardConfig();		if (element != null)			parseElement_ProcessorWizardConfig(element, transcodeWizardConfig);	}		private static Element buildElement_ProcessorWizardConfig(ProcessorWizardConfig processorWizardConfig, String elementStr) 	{		Element element = new Element(elementStr);				if (processorWizardConfig.url != null)		{			final Element e = new Element("source-url");			e.setText(processorWizardConfig.url);			element.addContent(e);		}		if (processorWizardConfig.contentDescriptor != null)		{			final Element e = new Element("content-descriptor-encoding");			e.setText(processorWizardConfig.contentDescriptor.getEncoding());			element.addContent(e);					}				if (processorWizardConfig.trackConfigs != null)		{						final Element e = new Element("track-configs");			element.addContent(e);			for (int i = 0; i < processorWizardConfig.trackConfigs.length; ++i)			{				final TrackConfig trackConfig = processorWizardConfig.trackConfigs[i];								final Element e2 = new Element("track-config");				e.addContent(e2);								// enabled:				{					final Element e3 = new Element("enabled");					e2.addContent(e3);					e3.setText("" + trackConfig.enabled);				}								// format:				if (trackConfig.format != null)				{					final Element e3 = new Element("format-serialized");					try					{						e3.setText(SerializationUtils.serialize(trackConfig.format));						e2.addContent(e3);					} catch (IOException e1)					{						logger.warning("Unable to serialize format: " + trackConfig.format + ": " + e);					}									}							}		}				if (processorWizardConfig.destUrl != null)		{			final Element e = new Element("dest-url");			e.setText(processorWizardConfig.destUrl.toString());			element.addContent(e);		}				return element;	}	private Element buildElement_RTPTransmitWizardConfig() 	{		return buildElement_ProcessorWizardConfig(rtpTransmitWizardConfig, ELEMENT_RTP_TRANSMIT_WIZARD_CONFIG);	}		private Element buildElement_TranscodeWizardConfig() 	{		return buildElement_ProcessorWizardConfig(transcodeWizardConfig, ELEMENT_TRANSCODE_WIZARD_CONFIG);	}}

⌨️ 快捷键说明

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