亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? videoplayer.java

?? 是一個用java實現的
?? JAVA
字號:
/*
 * VideoPlayer.java
 * 
 * Created on Mar 17, 2004
 *
 */
package gov.nist.applet.phone.media.messaging;

import gov.nist.applet.phone.media.receiver.PlayerWindow;
import gov.nist.media.protocol.live.RawLiveDataSource;

import java.awt.Component;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Vector;

import javax.media.ConfigureCompleteEvent;
import javax.media.Controller;
import javax.media.ControllerErrorEvent;
import javax.media.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
import javax.media.GainControl;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.MediaTimeSetEvent;
import javax.media.PackageManager;
import javax.media.Player;
import javax.media.PrefetchCompleteEvent;
import javax.media.RealizeCompleteEvent;
import javax.media.ResourceUnavailableEvent;
import javax.media.SizeChangeEvent;
import javax.media.StartEvent;
import javax.media.StopAtTimeEvent;

import javax.media.protocol.ContentDescriptor;
import javax.media.protocol.DataSource;
import javax.media.protocol.FileTypeDescriptor;

import com.sun.media.MediaPlayer;

/**
 * Class allowing one to play back some audio contained in a buffer
 * Play only MPEG_AUDIO and GSM audio data
 * With some minor modifications can play RAW data also
 * 
 * @author Jean Deruelle <jean.deruelle@nist.gov>
 *
 * <a href="{@docRoot}/uncopyright.html">This code is in the public domain.</a>
 */
public class VideoPlayer implements ControllerListener{	
	Player player=null;	
	PlayerWindow pw = null;
	Object waitSync = new Object();
	boolean stateTransitionOK = true;		
	double duration=5.0;			
	gov.nist.media.protocol.live.DataSource ds = null;	
		
	/**
	 * Initialize the voice player with the audio buffer
	 * @param data - the buffered voice to play
	 */	
	public void initialize(byte[] data){
		checkForPackage();		
		Vector ppl=PackageManager.getProtocolPrefixList();
		for(int i=0; i<ppl.size();i++)
			System.out.println(ppl.get(i));
		String url="live:";
		MediaLocator outML=new MediaLocator(url);		

		// Create a DataSource given the media locator.
		try {
			ds = new gov.nist.media.protocol.live.DataSource(
				data,
				new ContentDescriptor(ContentDescriptor.RAW).getContentType());	
			ds.connect();			
		} catch (Exception e) {
			e.printStackTrace();			
		}	
		System.err.println("create processor for: " + ds.getContentType());
		System.err.println("Classname of DataSource: " + ds.getClass().getName());
		//Set the data of this DataSource
		//((gov.nist.media.protocol.live.DataSource)ds).setBuffer(data);						
								
		try {
			player = Manager.createPlayer(ds);
			//player = new MediaPlayer();
			pw = new PlayerWindow(player);
		} catch (Exception e) {
			System.err.println("Failed to create a player from the given DataSource: " + e);
			e.printStackTrace();			
		}

		player.addControllerListener(this);		

		// Get the raw output from the processor.
		player.realize();		
		if (!waitForState(Controller.Realized)) {
			System.err.println("Failed to realize the processor.");			
		}

		// Get the output DataSource from the processor and
		// hook it up to the RawDataSourceHandler.		

		// Prefetch the processor.
		player.prefetch();
		if (!waitForState(Controller.Prefetched)) {
			System.err.println("Failed to prefetch the processor.");			
		}
	}
	
	/**
	 * Play the voice
	 */
	public void play(){
		//Set the stop time if there's one set.
	  	//if (duration > 0)
			//player.setStopTime(new Time(duration));
	  	// Start the player.
	  	player.start();			
	}
	
	/**
	 * Block until the processor has transitioned to the given state.
	 * @param state - the state to wait for
	 * @return false if the transition failed.
	 */
	protected boolean waitForState(int state) {
		synchronized (waitSync) {
			try {
			while (player.getState() < state && stateTransitionOK)
				waitSync.wait();
			} catch (Exception e) {}
		}
		return stateTransitionOK;
	}
				
	/**
	 * Controller Listener Method.
	 * Allow one to know what happen on the player and the voice
	 * @param evt - event received 
	 */
	public void controllerUpdate(ControllerEvent evt) {
		Player p = (Player)evt.getSourceController();

		if (p == null)
			return;

		// Get this when the internal players are realized.
		if (evt instanceof RealizeCompleteEvent) {
			if (pw != null) {
				pw.initialize();
				pw.setVisible(true);
			}
		}

		if (evt instanceof ControllerErrorEvent) {
			p.removeControllerListener(this);
			if (pw != null) {
				pw.close();
			}
			System.err.println("Receiver internal error: " + evt);
		}
		if (evt instanceof StartEvent) {
			GainControl gc=p.getGainControl();
			System.out.println("Class for gain contol"+gc);
			if(gc!=null){
				Component c=gc.getControlComponent();
				System.out.println("Class for component"+c);
			}
		}

		//System.out.println("new Event received"+evt.getClass().getName());
		if (evt instanceof ConfigureCompleteEvent ||
			evt instanceof RealizeCompleteEvent ||
			evt instanceof PrefetchCompleteEvent) {
			synchronized (waitSync) {
				stateTransitionOK = true;
				waitSync.notifyAll();
			}
		} else if (evt instanceof ResourceUnavailableEvent) {
			synchronized (waitSync) {
				stateTransitionOK = false;
				waitSync.notifyAll();
			}
		} else if (evt instanceof EndOfMediaEvent) {			
				
		} else if (evt instanceof SizeChangeEvent) {
		}
		else if (evt instanceof MediaTimeSetEvent) {
			System.err.println("- mediaTime set: " + 
			((MediaTimeSetEvent)evt).getMediaTime().getSeconds());
		} else if (evt instanceof StopAtTimeEvent) {
			System.err.println("- stop at time: " +
			((StopAtTimeEvent)evt).getMediaTime().getSeconds());
			ds.disconnect();	
			evt.getSourceController().close();				
			player.close();		
			ds=null;					
		}
	}
	
	/**
	 * Utility method allowing one to read a file in order to get the audio data
	 * @param fileName - the file to read
	 * @return the audio data buffered in an array of byte
	 */
	public static byte[] readFile(String fileName){
		byte[] dataTemp= new byte[822000];
		File f=new File(fileName);
		FileInputStream fis=null;
		try{
			fis=new FileInputStream(fileName);
		}
		catch(FileNotFoundException fnfe){
			fnfe.printStackTrace();
		}
		try{
			fis.read(dataTemp);
		}
		catch(IOException ioe){
			ioe.printStackTrace();
		}
		return dataTemp;
	}
	
	/**
	 * check if the gov.nist package is registered with jmf if not it is added
	 */
	public static void checkForPackage(){
		boolean packageFound=false;
		Vector protocols=PackageManager.getProtocolPrefixList();
		for(int i=0;i<protocols.size();i++){
			if(protocols.get(i).equals("gov.nist"))
				packageFound=true;
		}
		if(!packageFound){
			protocols.addElement("gov.nist");
			PackageManager.setProtocolPrefixList(protocols);
			PackageManager.commitProtocolPrefixList();
		}
	}
	
	/**
	 * Main method
	 * @param args - 
	 */
	public static void main(String[] args){		
		VideoPlayer videoPlayer=new VideoPlayer();
		byte[] data=readFile("d://temp//test.mp3");
		videoPlayer.initialize(data);
		videoPlayer.play();				
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本va欧美va精品| 亚洲精品欧美专区| 国产剧情av麻豆香蕉精品| 欧美videos大乳护士334| 久久精品99国产精品日本| 久久天堂av综合合色蜜桃网| 国产a视频精品免费观看| 国产色婷婷亚洲99精品小说| 成人av免费在线观看| 中文字幕一区二区5566日韩| 色综合亚洲欧洲| 亚洲www啪成人一区二区麻豆| 欧美一区二区三区人| 精品一区二区三区日韩| 国产精品久久久久久户外露出 | 热久久久久久久| 欧美电影免费观看高清完整版| 韩国三级中文字幕hd久久精品| 中国色在线观看另类| 欧美中文字幕一区二区三区 | 欧美视频在线观看一区二区| 三级一区在线视频先锋| 国产调教视频一区| 欧美视频在线观看一区| 国产精品 日产精品 欧美精品| 中文字幕一区二区三区色视频 | 国产在线日韩欧美| 亚洲色图清纯唯美| 欧美军同video69gay| 国产经典欧美精品| 午夜精品123| 国产精品久久久久久久久久久免费看 | 三级不卡在线观看| 国产欧美日韩麻豆91| 欧美狂野另类xxxxoooo| 成人高清av在线| 视频一区二区不卡| 国产精品福利一区| 日韩一级片网址| 在线亚洲欧美专区二区| 国产麻豆视频一区| 日韩中文字幕亚洲一区二区va在线| 国产午夜亚洲精品不卡| 欧美放荡的少妇| 91在线视频官网| 国内精品自线一区二区三区视频| 亚洲一区二区三区四区在线观看| 国产欧美日韩亚州综合| 91精品国产一区二区| 欧美中文字幕亚洲一区二区va在线| 国产成人在线影院| 美国欧美日韩国产在线播放| 午夜久久电影网| 亚洲男人的天堂网| 欧美国产欧美综合| 久久久久久久久久久久久女国产乱| 欧美精品xxxxbbbb| 在线观看一区二区精品视频| 91色在线porny| 成人午夜视频网站| 国产成人综合精品三级| 国产精品一区二区三区四区| 六月丁香综合在线视频| 亚洲成人777| 亚洲成a天堂v人片| 午夜av一区二区三区| 亚洲影视资源网| 亚洲综合另类小说| 一区二区久久久| 亚洲国产cao| 午夜不卡av免费| 日本午夜精品一区二区三区电影| 亚洲一区在线观看视频| 亚洲激情六月丁香| 亚洲最新在线观看| 亚洲愉拍自拍另类高清精品| 亚洲国产精品一区二区久久| 亚洲第一主播视频| 亚洲成人资源在线| 天天综合天天综合色| 日韩精品亚洲专区| 精品写真视频在线观看| 国精品**一区二区三区在线蜜桃| 国产在线精品一区二区三区不卡 | 无码av免费一区二区三区试看 | 日韩三级视频在线看| 91精品国产91热久久久做人人 | 婷婷亚洲久悠悠色悠在线播放| 日韩精品欧美成人高清一区二区| 午夜伊人狠狠久久| 美脚の诱脚舐め脚责91 | 日韩精品三区四区| 韩国成人精品a∨在线观看| 黄网站免费久久| 成人av网站在线观看| 色综合中文字幕国产 | 亚洲欧洲成人自拍| 一区二区三区.www| 丝袜诱惑制服诱惑色一区在线观看| 免费久久精品视频| 成人综合在线观看| 一本色道**综合亚洲精品蜜桃冫 | 91精品国产综合久久福利软件 | 亚洲在线观看免费视频| 毛片不卡一区二区| 成人a免费在线看| 91精品久久久久久蜜臀| 国产清纯白嫩初高生在线观看91 | 久久久久久久久久久久久久久99| 最新日韩av在线| 肉肉av福利一精品导航| 国产成人99久久亚洲综合精品| 在线日韩一区二区| 精品国产乱码久久久久久浪潮| 国产精品成人在线观看| 日韩中文字幕1| 99在线视频精品| 欧美一级理论片| 亚洲欧美另类综合偷拍| 老司机一区二区| 色噜噜狠狠成人中文综合 | 久久午夜色播影院免费高清| 亚洲欧美日韩国产手机在线| 久久精品国产免费| 欧美午夜一区二区三区免费大片| 久久精品男人的天堂| 亚洲成人激情av| 成人av在线播放网站| 欧美不卡一区二区| 亚洲高清久久久| www.激情成人| 精品国产在天天线2019| 亚洲国产综合色| 91啪亚洲精品| 国产亚洲欧美色| 久久www免费人成看片高清| 欧美日韩一区久久| 亚洲欧洲成人精品av97| 国产乱子轮精品视频| 91精品国产麻豆国产自产在线 | 日本一区二区电影| 久久激情五月激情| 欧美精品色综合| 亚洲一区二区三区免费视频| 9l国产精品久久久久麻豆| 国产日韩精品一区二区浪潮av| 毛片av一区二区三区| 7777女厕盗摄久久久| 亚洲第一电影网| 在线观看国产精品网站| 亚洲免费在线看| 99久久综合国产精品| 中文在线资源观看网站视频免费不卡 | 精品国偷自产国产一区| 日本不卡的三区四区五区| 91国内精品野花午夜精品| 亚洲视频在线观看三级| 成人av网址在线| 1000部国产精品成人观看| 成人av网站在线| 亚洲欧洲日韩av| 99精品欧美一区| 日韩一区在线播放| 99r精品视频| 亚洲少妇30p| 色婷婷亚洲精品| 亚洲国产精品麻豆| 欧美日韩黄视频| 人人狠狠综合久久亚洲| 日韩色在线观看| 国内成人精品2018免费看| 精品国产电影一区二区| 国精产品一区一区三区mba视频| 精品国产一区二区三区不卡| 国产酒店精品激情| 国产精品久久久久久妇女6080| 99久久国产综合精品女不卡| 综合久久国产九一剧情麻豆| 91久久精品日日躁夜夜躁欧美| 亚洲国产一区二区在线播放| 欧美日韩亚洲综合在线| 日本成人超碰在线观看| 精品国产污污免费网站入口| 风流少妇一区二区| 亚洲蜜臀av乱码久久精品| 在线观看免费亚洲| 视频一区二区不卡| 久久夜色精品一区| 91在线视频官网| 日韩黄色在线观看| 日本一区二区在线不卡| 色成人在线视频| 久久精品噜噜噜成人av农村| 欧美国产日本视频| 欧美日韩国产天堂| 久久99国产精品尤物| 亚洲欧洲色图综合| 日韩欧美资源站| voyeur盗摄精品| 久久精品国产精品青草|