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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? voiceplayer.java

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

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.ControllerEvent;
import javax.media.ControllerListener;
import javax.media.EndOfMediaEvent;
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.StopAtTimeEvent;

import javax.media.protocol.DataSource;

/**
 * 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
 * This class use double buffering to correctly handle a continuous flow of message
 * This is done because to stop and close the handler it takes some time
 * 
 * @author Jean Deruelle <jean.deruelle@nist.gov>
 *
 * <a href="{@docRoot}/uncopyright.html">This code is in the public domain.</a>
 */
public class VoicePlayer implements ControllerListener{	
	Player player=null; 
	Player player2=null;	
	Object waitSync = new Object();
	boolean stateTransitionOK = true;		
	double duration=5.0;			
	DataSource ds = null;		
	Integer doubleBuffer=new Integer(0);	
		
	public VoicePlayer(){
		checkForPackage();
	}
		
	/**
	 * Initialize the voice player with the audio buffer
	 * @param data - the buffered voice to play
	 */	
	public void initialize(byte[] data){								
		/*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 = Manager.createDataSource(outML);					
		} 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);						
		if(doubleBuffer.intValue()==0){				
			try {
				player = Manager.createPlayer(ds);
			} 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.");			
			}			
		}
		else{
			try {
				player2 = Manager.createPlayer(ds);
			} catch (Exception e) {
				System.err.println("Failed to create a player from the given DataSource: " + e);
				e.printStackTrace();			
			}

			player2.addControllerListener(this);		

			// Get the raw output from the processor.
			player2.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.
			player2.prefetch();
			if (!waitForState(Controller.Prefetched)) {
				System.err.println("Failed to prefetch the processor.");			
			}				
		}
	}
	/**
	 * 
	 * @param data
	 */
	/*public synchronized void setData(byte[] data){	
		player.stop();
		player.deallocate();		
		//Set the data of this DataSource
		((gov.nist.media.protocol.live.DataSource)ds).setBuffer(data);	
		try {
			player.setSource(ds);		
		}
		catch(Exception ioe){
			ioe.printStackTrace();
		}		 
	}*/
	
	/*public boolean isInitialized(){
		return initialized;
	}*/
	
	/**
	 * 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.
	  	synchronized(doubleBuffer){	  	
			if(doubleBuffer.intValue()==0){
				player.start();
				doubleBuffer=new Integer(1);
			}	  		
		  	else{
				player2.start();
				doubleBuffer=new Integer(0);
		  	}
	  	}
	}
	
	/**
	 * 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) {
			if(doubleBuffer.intValue()==0){	
				try {
					while (player.getState() < state && stateTransitionOK)
						waitSync.wait();
				} catch (Exception e) {}
			}
			else{
				try {
					while (player2.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) {
		//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) {				
			evt.getSourceController().stop();		
			evt.getSourceController().close();			
		} 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){		
		VoicePlayer voicePlayer=new VoicePlayer();
		byte[] data=readFile("d://temp//test.mp3");
		voicePlayer.initialize(data);
		voicePlayer.play();				
	}

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区四区在线| 91高清视频免费看| 日韩—二三区免费观看av| 一区在线播放视频| 国产精品久久免费看| 中文字幕成人在线观看| 久久精品视频免费观看| 久久精品人人做人人爽97| 2024国产精品| 欧美国产在线观看| 国产精品嫩草99a| 国产精品久久久爽爽爽麻豆色哟哟| 7777精品伊人久久久大香线蕉最新版 | 精品免费国产二区三区| 欧美日韩在线精品一区二区三区激情 | 日韩理论片网站| 亚洲精品视频在线观看网站| 亚洲综合在线电影| 日本不卡一区二区| 国产精品一线二线三线| 99久久婷婷国产精品综合| 色婷婷久久综合| 欧美日韩免费高清一区色橹橹| 91精品福利在线一区二区三区| 欧美大片一区二区三区| 国产精品久久久久国产精品日日| 亚洲天堂精品在线观看| 日韩精品一级二级| 国产成人午夜99999| 色婷婷av一区二区三区gif | 久久99精品视频| www.欧美色图| 91精品欧美福利在线观看| 久久免费视频一区| 亚洲自拍偷拍九九九| 蜜臀久久99精品久久久画质超高清 | 欧美精品一区二区精品网| 日本一区二区视频在线| 国产精品国产三级国产aⅴ原创| 一区二区三区不卡视频在线观看| 极品少妇一区二区三区精品视频| 激情成人综合网| 99精品视频在线免费观看| 欧美在线高清视频| 亚洲国产精品成人综合色在线婷婷| 综合久久国产九一剧情麻豆| 日韩电影在线看| 99久久er热在这里只有精品15| 日韩天堂在线观看| 亚洲精品中文字幕乱码三区| 久久99精品国产91久久来源| 在线观看免费亚洲| 国产精品视频在线看| 极品销魂美女一区二区三区| 欧美日韩一区久久| 亚洲免费观看高清在线观看| 国产乱码精品一品二品| 欧美大片在线观看一区| 偷拍日韩校园综合在线| 色综合久久久久综合99| 国产精品久久久99| 成人午夜激情影院| 久久综合狠狠综合久久激情| 日本成人超碰在线观看| 在线不卡免费av| 亚洲影视在线播放| 一本到三区不卡视频| 亚洲色图制服诱惑| kk眼镜猥琐国模调教系列一区二区| 欧美精品一区二区三区视频| 免费成人在线观看视频| 3d成人动漫网站| 热久久免费视频| 欧美一级理论片| 美女视频网站黄色亚洲| 日韩视频免费观看高清完整版在线观看 | 国产69精品久久99不卡| 精品国产一区二区三区av性色| 麻豆国产精品视频| 日韩精品一区二区三区在线播放| 奇米888四色在线精品| 日韩午夜激情免费电影| 麻豆高清免费国产一区| 精品国产乱码久久| 国产激情偷乱视频一区二区三区| 国产亚洲一二三区| caoporn国产一区二区| 亚洲欧美国产毛片在线| 欧美亚洲动漫精品| 日韩电影免费在线看| 精品久久久久一区| 国产91精品一区二区麻豆网站 | 亚洲欧洲美洲综合色网| 97久久精品人人做人人爽| 亚洲老妇xxxxxx| 7777精品伊人久久久大香线蕉完整版| 天涯成人国产亚洲精品一区av| 日韩欧美高清dvd碟片| 国产精品一区二区x88av| 亚洲色图色小说| 在线播放一区二区三区| 国产精品一区三区| 亚洲九九爱视频| 欧美一卡二卡在线| 成人免费不卡视频| 日韩精品三区四区| 中文字幕在线一区| 欧美一级欧美三级| av福利精品导航| 免费视频一区二区| 亚洲图片激情小说| 日韩欧美一区中文| 一本高清dvd不卡在线观看| 美国毛片一区二区| 一区二区三区中文字幕精品精品| 日韩一区和二区| 91福利资源站| 国产成人免费视| 亚洲v中文字幕| 中文字幕二三区不卡| 欧美日韩精品三区| 国内精品久久久久影院薰衣草| 中文字幕一区视频| 精品粉嫩超白一线天av| 色偷偷一区二区三区| 国产一区免费电影| 亚洲二区在线观看| 欧美激情一区二区三区蜜桃视频| 欧美高清dvd| 日本高清不卡在线观看| 国产乱对白刺激视频不卡| 香蕉乱码成人久久天堂爱免费| 国产精品剧情在线亚洲| 精品国产伦一区二区三区观看体验| 欧美怡红院视频| 91在线一区二区| 成人av在线看| 国产精品一区二区三区99| 麻豆成人久久精品二区三区小说| 亚洲影视在线观看| 亚洲午夜激情av| 亚洲靠逼com| 有码一区二区三区| 亚洲日本欧美天堂| 亚洲视频免费观看| 亚洲丝袜自拍清纯另类| 中日韩av电影| 国产精品欧美极品| 中文字幕欧美激情一区| 国产日韩欧美精品一区| 精品国产凹凸成av人网站| 欧美大片一区二区三区| 欧美成人三级电影在线| 日韩午夜精品视频| 精品蜜桃在线看| 欧美精品一区二区三| 久久久久亚洲蜜桃| 欧美国产欧美综合| 最新不卡av在线| 一区二区三区日韩欧美| 一区二区三区在线影院| 亚洲午夜电影在线| 日韩在线一区二区| 精品写真视频在线观看| 国产精品一区二区在线观看不卡| 国产电影精品久久禁18| 成人av在线电影| 欧美午夜精品一区| 欧美一级电影网站| 国产亚洲精品bt天堂精选| 欧美国产日韩精品免费观看| 国产精品麻豆欧美日韩ww| 亚洲乱码中文字幕| 日韩成人一区二区三区在线观看| 老司机午夜精品99久久| 国产1区2区3区精品美女| 色妞www精品视频| 欧美一区二区久久久| 亚洲国产精品二十页| 亚洲一区二区三区视频在线播放| 日韩国产精品久久久久久亚洲| 国产一区二区精品久久| 色综合久久久久综合| 欧美成人女星排名| 一区二区三区四区国产精品| 丝袜美腿亚洲一区二区图片| 久久99国产精品成人| 91麻豆swag| 精品久久久久久久人人人人传媒 | 成人午夜免费电影| 色综合色狠狠天天综合色| 91精品国产入口在线| 国产精品素人一区二区| 日本中文在线一区| 成人国产精品免费| 日韩欧美成人一区二区| 亚洲精品国产精品乱码不99| 国内精品国产三级国产a久久| 色久优优欧美色久优优| 久久精品夜色噜噜亚洲aⅴ|