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

📄 rtpurlparser.java

📁 FMJ(freedom media for java)是java视频开发的新选择
💻 JAVA
字号:
package net.sf.fmj.media.datasink.rtp;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * Parses JMF RTP URLs into ParsedRTPUrl. * May only contain 1 or 2 elements (see examples).  An element is like: 192.168.1.4:8000/audio/16 *  * @author Ken Larson * */public class RTPUrlParser{	// example URL 1: rtp://224.2.231.36:22224/video&224.2.231.36:22226/audio	// example URL 2: rtp://192.168.1.4:8000/audio/16	private static final Pattern pattern = Pattern.compile(		"rtp://" +				"([a-zA-Z_/\\.0-9]+)" + // host		"(:([0-9]+))" + 		// port		"(/(audio|video)" +		// audio or video			"(/([0-9]+))?)"	+	// ttl - optional					"(\\&" + 					// same pattern again, but this one is optional					"([a-zA-Z_/\\.0-9]+)" + // host			"(:([0-9]+))" + 		// port			"(/(audio|video)" +		// audio or video				"(/([0-9]+))?)"	+	// ttl - optional				")?"		);	public static ParsedRTPUrl parse(String url) throws RTPUrlParserException	{		Matcher m = pattern.matcher(url);		if (!m.matches())			throw new RTPUrlParserException("URL does not match regular expression for RTP URLs");		ParsedRTPUrlElement e = extract(m, 0);				if (m.group(9) == null)	// if only 1 element			return new ParsedRTPUrl(e);				ParsedRTPUrlElement e2 = extract(m, 8);				if (e2.type.equals(e.type))			throw new RTPUrlParserException("Both elements of the RTP URL have type " + e.type);				return new ParsedRTPUrl(e, e2);			}		private static ParsedRTPUrlElement extract(Matcher m, int offset) throws RTPUrlParserException	{		ParsedRTPUrlElement e = new ParsedRTPUrlElement();		try		{			e.host = m.group(offset + 1);			e.port = Integer.parseInt(m.group(offset + 3));			e.type = m.group(offset + 5);			if (m.group(offset + 7) != null)	// optional				e.ttl = Integer.parseInt(m.group(offset + 7));		}		catch (NumberFormatException ex)		{	throw new RTPUrlParserException(ex);		}		return e;	}				}

⌨️ 快捷键说明

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