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

📄 simplesmilcontrol.java

📁 MM7彩信对接网关示例
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				if (refElement.attributeValue("src").equalsIgnoreCase(fileName)){
					parContent.remove(refElement);
					
					// 如果该桢中已经没有对象,且允许删除桢,则将该桢删除
					if (parContent.content().size() == 0 && delSlidIfNoContent){
						removeSlid(slidNO);
					}
					break;
				}
			}
		}
	}
	
	/**
	 * 更新桢的显示时间
	 * @param slidNO
	 * @param newTime
	 * @return 返回老的时间设置
	 */
	public String updateSlidTimeInterval(int slidNO, int newTime){
		List list = body.elements();
		if (slidNO > list.size()){
			return null;
		}
		
		Element parContent = (Element)list.get(slidNO);
		String oldTime = parContent.attributeValue("dur");
		parContent.setAttributeValue("dur", String.valueOf(newTime) + "s");
		
		return oldTime;
	}
	
	/**
	 * 获得指定内容在哪些桢中
	 * @param objectName 内容的名称
	 * @return 桢
	 */
	public List getObjectAtSlidNo(String objectName){
		List result = new LinkedList();
		for (int i = 0; i < listSlid.size(); i++){
			Element pur = (Element)listSlid.get(i);
			List subSrc = pur.elements();
			for (int j = 0; j < subSrc.size(); j++){
				Element src = (Element)subSrc.get(j);
				if (src.attributeValue("src").equalsIgnoreCase(objectName)){
					result.add(new Integer(i));
				}
			}
		}
		
		return result;
	}
	
	/**
	 * 返回指定桢内容内的元素名称集合
	 * @param slidNo 指定桢
	 * @return 指定桢内容内的元素名称集合
	 */
	public List getObjectsFromSlid(int slidNo){
		List list = body.elements();
		int nNo = slidNo;
		if (list.size() <= slidNo){
			nNo = list.size() - 1;
		}
		Element purElement = (Element)list.get(nNo);
		List mimeNameList = new LinkedList();
		for (int i = 0; i < purElement.elements().size(); i++){
			mimeNameList.add(((Element)purElement.elements().get(i)).attributeValue("src"));
		}
		
		return mimeNameList;
	}
	
	/**
	 * 返回指定桢的显示时间(秒) 
	 * @param slidNO 指定桢
	 * @return 返回指定桢的显示时间(秒) 
	 */
	public int getSlidTimeinterval(int slidNO){
		List list = body.elements();
		if (slidNO > list.size()){
			return -1;
		}
		Element parContent = (Element)list.get(slidNO);
		String tmp = parContent.attributeValue("dur");
		tmp = tmp.substring(0, tmp.length() - 1);
		return Integer.parseInt(tmp);
	}
	
	/**
	 * 获得空桢列表
	 * @return 空桢列表(空桢编号的集合)
	 */
	public List getNullSlid(){
		List list = body.elements();
		List result = new LinkedList();
		for (int i = 0; i < list.size(); i++){
			Element e = (Element)list.get(i);
			if (e.elements().size() == 0){
				result.add(new Integer(i));
			}
		}
		
		return result;
	}
	
	/**
	 * 返回该SMIL对象形成的完整XML内容,例如:
	 * <smil>
     *		<body>
     *           <par dur="10000ms">
     *           	<img src = "out_temp_1.gif" />
     *                   <text src = "1.txt" />
     *                   <audio src = "town.mid" />
     *           </par>
     *
     *          <par dur="10000ms">
     *                   <text src = "interface.txt" />
     *           </par>
     *		</body>
     *	</smil>
	 */
	public String toString(){
		ByteArrayOutputStream buffer = new ByteArrayOutputStream();
		
		try {
			XMLWriter outp = new XMLWriter(buffer);
			outp.write(doc);
			outp.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

		try {
			buffer.close();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		
		String result = new String(buffer.toByteArray());
		result = result.substring("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r".length());
		
		try {
			result = new String(result.getBytes("UTF-8"), "GBK");
		} catch (UnsupportedEncodingException e2) {
			e2.printStackTrace();
		}
		System.out.println("获得的SMIL String: " + result);
		
		return result;
	}
	
	/**
	 * 添加指定Mime类型的文件内容到SMIL
	 * @param mimeType Mime类型
	 * @param slidNo 指定桢
	 * @param name 文件名称
	 * @param pageInsertPos 插入位置
	 */
	public void addMimeContent(String mimeType, int slidNo, String name, int pageInsertPos){
		
		// 如果是文本类型的
		if (mimeType.length() >= "text".length() &&
			mimeType.substring(0, 4).equalsIgnoreCase("text")){
			addText(slidNo, name, pageInsertPos);
		}
		// 是图片类型
		else if (mimeType.length() >= "image".length() &&
				 mimeType.substring(0, 5).equalsIgnoreCase("image")){
			addImage(slidNo, name, pageInsertPos);
		}
		// 是声音类型
		else if (mimeType.length() >= "audio".length() &&
				 mimeType.substring(0, 5).equalsIgnoreCase("audio")){
			addAudio(slidNo, name, pageInsertPos);
		}
		// 是声音类型
		else if (mimeType.equalsIgnoreCase("text/x-iMelody") ||
				 mimeType.equalsIgnoreCase("text/x-eMelody")){
			addAudio(slidNo, name, pageInsertPos);
		}
		// 其他类型
		else {
			addRef(slidNo, name, pageInsertPos);
		}
	}

	/**
	 * 添加指定Mime类型的文件内容到SMIL
	 * @param mimeType Mime类型
	 * @param slidNo 指定桢
	 * @param name 文件名称
	 */
	public void addMimeContent(String mimeType, int slidNo, String name){
		
		// 如果是文本类型的
		if (mimeType.length() >= "text".length() &&
			mimeType.substring(0, 4).equalsIgnoreCase("text")){
			addText(slidNo, name);
		}
		// 是图片类型
		else if (mimeType.length() >= "image".length() &&
				 mimeType.substring(0, 5).equalsIgnoreCase("image")){
			addImage(slidNo, name);
		}
		// 是声音类型
		else if (mimeType.length() >= "audio".length() &&
				 mimeType.substring(0, 5).equalsIgnoreCase("audio")){
			addAudio(slidNo, name);
		}
		// 是声音类型
		else if (mimeType.equalsIgnoreCase("text/x-iMelody") ||
				 mimeType.equalsIgnoreCase("text/x-eMelody")){
			addAudio(slidNo, name);
		}
		// 其他类型
		else {
			addRef(slidNo, name);
		}
	}
	
/*	public static void main(String args[]){
		SimpleSmilControl c = new SimpleSmilControl();
		int n = c.addSlid(1000);
		
		c.addText(n, "1.txt");
		c.addImage(n, "myI.jpg");
		c.addAudio(n, "myAu.mid");
		System.out.println(c.toString());
		
		int m = c.addSlid(2000);
		c.addText(m, "2.text");
		System.out.println(c.toString());
		
		c.removeSlid(n);
		System.out.println(c.toString());
		SimpleSmilControl smil = new SimpleSmilControl("<?xml version=\"1.0\" encoding=\"UTF-8\"?><smil><body><par dur=\"20s\"><ref src=\"11206547959530.txt\" /><ref src=\"11206547959681.txt\" /><ref src=\"11206547959682.txt\" /><ref src=\"11206547959684.txt\" /><ref src=\"11206547959686.txt\" /></par><par dur=\"10s\"><ref src=\"11206547959530.txt\" /><ref src=\"11206547959681.txt\" /><ref src=\"11206547959682.txt\" /><ref src=\"11206547959684.txt\" /><ref src=\"11206547959685.txt\" /></par></body></smil>");
		System.out.println(smil.toString());
		
		smil.removeObject(0, "11206547959530.txt", true);
		smil.removeObject(0, "11206547959681.txt", true);
		smil.removeObject(0, "11206547959682.txt", true);
		smil.removeObject(0, "11206547959684.txt", true);
		System.out.println(smil.toString());
		
		smil.removeObject(0, "11206547959686.txt", true);
		System.out.println(smil.toString());
		
		smil.removeSlid(0);
		System.out.println(smil.toString());
		
//		System.out.println(smil.getObjectAtSlidNo("11206547959685.txt").toString());
		
		smil.addRef(1, "hihi.txt", 4);
		//System.out.println(smil.toString());
		
		int nSlid = smil.addSlid(30);
		smil.addRef(nSlid, "wandanle.mid");
		System.out.println(smil.toString());
		
		int nSlid = smil.addSlid(100, 0);
		smil.addRef(nSlid, "hello.jpg", 0);
		smil.updateSlidTimeInterval(nSlid, 50);
		System.out.println(smil.toString());
		
		
		
		System.out.println(smil.getObjectsFromSlid(2).toString());
		
		smil.addSlid(80);
		smil.addSlid(90);
		System.out.println(smil.toString());
		
		System.out.println(smil.getSlidTimeinterval(nSlid));
	}*/
	
}

⌨️ 快捷键说明

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