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

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

?? audioplayer.java

?? JAVA-Applet的錄音機(jī)程序,提供錄制,播放,用戶接口等功能.
?? JAVA
字號(hào):
package sunstudio.record.au.audio.play;

import java.io.*;
import java.util.*;
import sunstudio.util.*;

public class AudioPlayer extends InputStream implements Runnable{

	private boolean pause=false;
	private InputStream input;
	Thread td=null;
	sun.audio.AudioPlayer player=sun.audio.AudioPlayer.player;
	boolean isover=false;
    protected static final int DFLT_SIZE=4096;
    protected int putPTR;
    protected int getPTR;
    protected int waitingPuts;
    protected int waitingGets;
    protected int emptyBytes;
    protected int usedBytes;
    protected Object putMonitor;
    protected Object getMonitor;
    protected byte data[];
    protected int moduloMask_;
    protected boolean atEOF;
    protected boolean gaveEOF;
    protected boolean flushed_;
	private Vector b1=new Vector();
	
	public AudioPlayer(){
		super();
		putMonitor=new Object();
		getMonitor=new Object();
        gaveEOF=false;
        flushed_=false;
        data=new byte[4096];
        moduloMask_=4096-1;
        emptyBytes=4096;
        atEOF=false;
	}
	public void addAudioPlayListener(AudioPlayListener l){b1.addElement(l);}
	synchronized void notifyListener(int evtType,byte[] wavedata){
		AudioPlayEvent evt=new AudioPlayEvent(evtType,wavedata);
		for(Enumeration enu=b1.elements();enu.hasMoreElements();)
			((AudioPlayListener)enu.nextElement()).onAudioPlayEvent(evt);
	}
////////////////////////////////////////////////////
	public void run(){
		try{
			byte[] tmpp=new byte[800];
			int readCount=0;
			while((readCount=SystemTool.readBytes(input,800,tmpp))>-1)write(tmpp,0,800);
			notifyListener(AudioPlayEvent.PLAY_OVER,null);
		}catch(Exception e){
			clearData();
			notifyListener(AudioPlayEvent.PLAY_ERR,null);
		}
		stop_play();
	}
	public void suspend_play(){
		pause=true;
	}
	public void resume_play(){
		if(!pause)return;
		pause=false;
	}
    public void stop_play(){
		try{
			clearData();
			if(td!=null){
				td.stop();
				td=null;
			}
		}catch(Exception e){e.printStackTrace();}	
		try{
			player.stop(this);
		}catch(Exception e){}
		synchronized(putMonitor){
			try{
				if(waitingPuts>0)putMonitor.notifyAll();
			}catch(Exception e){e.printStackTrace();}
		}
		synchronized(getMonitor){
			try{
				if(waitingGets>0)getMonitor.notifyAll();
			}catch(Exception e){e.printStackTrace();}
		}
    }
	public void clearData(){
        gaveEOF=false;
        flushed_=false;
        int j=4096;
		synchronized(data){
			data=null;
			data=new byte[j];
		}
        moduloMask_=j-1;
        emptyBytes=j;
        atEOF=false;
	}
    public void start_play(InputStream inp){
		input=inp;
		try{
			stop_play();
			pause=false;
			isover=false;
			player.start(this);
			td=null;
			td=new Thread(this);
			td.start();
		}catch(Exception e){}
    }	
	int innerRead()throws Exception{
		/*int rt=-1;
		while(true){
			if(!readOver){
				rt=input.read();
				c++;
				readOver=(c==processlen);
				return rt;
			}else{
				if(c==processlen){
					rt=input.read();
					if(rt==-1)return -1;//READ_STREAM_OVER
					c=0;
					readOver=(rt==0);
				}else{
					c++;
					return rt(c-1);
				}
			}
		}*/
		return input.read();
	}
	int innerRead(byte abyte0[], int i, int j)throws Exception{
        if(j<=0)return 0;
        int k=innerRead();
        if(k==-1)return -1;
        abyte0[i]=(byte)k;
        int i1=1;
        try{
            while(i1<j){
                int l=innerRead();
                if(l==-1)break;
                if(abyte0!=null)abyte0[i+i1]=(byte)l;
                i1++;
            }
        }catch(IOException _ex){}
        return i1;
	}
    public static int Au2Wave(byte byte0){
        byte0^=0xff;
        int i=((byte0&0xf)<<3)+132;
        i<<=(byte0&0x70)>>4;
		return (i-132)*((byte0&0x80)==0?-1:1);
        //if((byte0&0x80)==0)return 132-i;
        //else return i-132;
    }
	public static byte Wave2Au(int wv){
		int i2=Math.abs(wv);
		if(i2>32635)i2=32635;
		i2+=132;
        int x=ULAW_LUT[i2>>7];
        int y=i2>>x+3&0xf;
		i2=(x<<4|y)^(wv>0?0xff:0x7f);
		return (byte)i2;
	}
	////////////////////////////////////////////////////////////////////////
    private void put(byte byte0){
		synchronized(putMonitor){
            /*if(atEOF)return;
            emptyBytes--;
            data[putPTR]=byte0;
            putPTR=(putPTR + 1) % data.length;
			*/
			synchronized(getMonitor){
				usedBytes++;
				isover=true;
				if(waitingGets>0)getMonitor.notify();
			}
		}
    }
    private void put(byte abyte0[],int i,int j){
        int k=j;
        synchronized(putMonitor){
            while(emptyBytes<j&&!atEOF) {
                waitingPuts++;
                try{
                    putMonitor.wait();
                }catch(InterruptedException _ex){}
                waitingPuts--;
            }
            if(atEOF)return;
            emptyBytes-=j;
            if(putPTR+j>data.length){
                k=data.length-putPTR;
                System.arraycopy(abyte0,i,data,putPTR,k);
                i+=k;
                putPTR=0;
                k=j-k;
            }
            System.arraycopy(abyte0,i,data,putPTR,k);
            putPTR+=k;
        }
        synchronized(getMonitor){
            usedBytes+=j;
            if(waitingGets>0)getMonitor.notify();
        }
    }
    private int take(byte abyte0[],int i,int j){
        synchronized(getMonitor){
            while(usedBytes<j && !atEOF && !flushed_){
				if(isover)return -2;//update for play over
                waitingGets++;
                try{
                    getMonitor.wait();
                }catch(InterruptedException _ex){}
		        waitingGets--;
            }
            if(j>usedBytes)j=usedBytes;
            if(atEOF && usedBytes <= 0){
                byte byte0=-1;
                return byte0;
            }
            if(flushed_)flushed_=false;
            usedBytes-=j;
            int k=j;
            if(getPTR + j>data.length){
                k=data.length-getPTR;
                System.arraycopy(data,getPTR,abyte0,i,k);
                getPTR=0;
                i+=k;
                k=j-k;
            }
            System.arraycopy(data,getPTR,abyte0,i,k);
            getPTR+=k;
        }
        synchronized(putMonitor){
            emptyBytes+=j;
            if(waitingPuts>0)putMonitor.notify();
        }
        return j;
    }
    public int read() throws IOException{throw new IOException();}
    public int read(byte abyte0[],int i,int j) throws IOException{
		/////////////////
		if(pause){//update for pause
			abyte0[0]=127;
			return 1;
		}
//		if(usedBytes<=0)throw new IOException();
        int k=0;
        int l=0;
        if(gaveEOF)throw new EOFException("pipe is already closed");
        int i1;
        do{
            i1=Math.min(data.length,j);
            k=take(abyte0,i,i1);
			if(k==-2)throw new IOException();//流已到尾update for play over
            if(k==-1){
                if(l==0){
                    gaveEOF=true;
                    return -1;
                }
                break;
            }
            i+=k;
            l+=k;
            j-=k;
		}while(i1==k&&j>data.length);
		try{
			notifyListener(AudioPlayEvent.PLAY_DATA,abyte0);
		}catch(Exception e){}
        return l;
    }
    public void receivedFlush(){
        if(atEOF)return;
        synchronized(getMonitor){
            flushed_=true;
            if(waitingGets>0)getMonitor.notifyAll();
        }
    }
    public void receive(int i) throws EOFException{
        if(atEOF)throw new EOFException("stream is closed");
        if(emptyBytes==0)receivedFlush();
        put((byte)(i&0xff));
    }
    public void receive(byte abyte0[],int i,int j)throws EOFException{
        while(j>data.length && !atEOF){
            put(abyte0,i,data.length);
            j-=data.length;
            i+=data.length;
        }
        if(!atEOF){
            if(j <= 0)return;
            if(j>emptyBytes)receivedFlush();
            put(abyte0,i,j);
            return;
        }else throw new EOFException("stream is closed");
    }
	public void write(int i) throws IOException{receive(i);}
    public void write(byte abyte0[], int i, int j) throws IOException{
		receive(abyte0, i, j);
	}
    private static final int ULAW_LUT[] = {
        0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 
        3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 
        4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
        4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 
        5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
        5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
        5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 
        6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
        6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
        6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
        6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
        6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
        6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 
        7, 7, 7, 7, 7, 7
    };
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲www啪成人一区二区麻豆| 国产自产2019最新不卡| 久久er99热精品一区二区| 成人av小说网| 精品国产1区二区| 亚洲黄色性网站| 国产精品123| 欧美久久久久久蜜桃| 亚洲精选在线视频| 91在线免费看| 欧美激情中文不卡| 精品一区二区三区免费视频| 欧美日韩国产色站一区二区三区| √…a在线天堂一区| 国产成人午夜精品5599| 日韩欧美不卡一区| 日韩—二三区免费观看av| 在线亚洲一区二区| 亚洲欧美在线aaa| 高清日韩电视剧大全免费| 日韩女优电影在线观看| 亚洲国产一区二区在线播放| 色综合色综合色综合色综合色综合 | 日韩亚洲欧美一区二区三区| 亚洲国产va精品久久久不卡综合| 色丁香久综合在线久综合在线观看| 国产三级精品在线| 国产乱淫av一区二区三区| 日韩欧美黄色影院| 国产在线视频一区二区三区| 欧美va亚洲va在线观看蝴蝶网| 男女视频一区二区| 精品久久久三级丝袜| 狠狠色狠狠色综合| 国产午夜亚洲精品羞羞网站| 春色校园综合激情亚洲| 中文字幕一区av| 色94色欧美sute亚洲线路一ni | 日韩专区欧美专区| 欧美一区中文字幕| 看电视剧不卡顿的网站| 精品国产成人在线影院| 国产99精品视频| 中文字幕中文字幕在线一区| 色综合天天做天天爱| 亚洲国产日产av| 精品国产凹凸成av人网站| 国产98色在线|日韩| 91丨porny丨蝌蚪视频| 国产精品99久久久久久宅男| 国产日韩欧美精品综合| 94-欧美-setu| 亚洲国产精品综合小说图片区| 91精品国产欧美日韩| 国模少妇一区二区三区| 久久久蜜桃精品| 91亚洲精华国产精华精华液| 亚洲午夜三级在线| 欧美第一区第二区| 成人性视频网站| 亚洲电影中文字幕在线观看| 日韩一级二级三级精品视频| 成人精品视频.| 性做久久久久久久久| 久久亚洲一区二区三区四区| 色综合一区二区三区| 精品一二三四区| 一区二区久久久久| 久久综合999| 欧美精品色综合| 成人aa视频在线观看| 麻豆91免费看| 一区二区三区国产豹纹内裤在线| 欧美电影免费观看完整版| 91视频在线观看| 国产在线一区二区| 爽好多水快深点欧美视频| 欧美激情一区二区| 欧美成人高清电影在线| 色哟哟国产精品免费观看| 毛片不卡一区二区| 亚洲午夜一二三区视频| 国产精品美女久久久久久久网站| 日韩欧美在线不卡| 欧洲国内综合视频| 91在线丨porny丨国产| 国内精品久久久久影院一蜜桃| 亚洲va韩国va欧美va精品| 中文字幕日本乱码精品影院| 久久精品人人做| 精品国产免费人成电影在线观看四季 | 高清日韩电视剧大全免费| 秋霞成人午夜伦在线观看| 亚洲国产视频一区| 亚洲精品乱码久久久久久日本蜜臀| 久久久久久夜精品精品免费| 欧美一区二区三区不卡| 欧美日韩1区2区| 欧美午夜免费电影| 色婷婷av一区二区三区软件| 91在线国产福利| av电影天堂一区二区在线观看| 国产精品夜夜爽| 国内精品在线播放| 久久成人麻豆午夜电影| 日本视频免费一区| 欧美bbbbb| 久久99在线观看| 狠狠色丁香婷婷综合久久片| 国产一区二区三区高清播放| 久久精品国产免费看久久精品| 毛片一区二区三区| 精品亚洲欧美一区| 国产ts人妖一区二区| 国产**成人网毛片九色| 成人免费观看男女羞羞视频| va亚洲va日韩不卡在线观看| 91网页版在线| 欧美少妇xxx| 6080国产精品一区二区| 日韩欧美一区中文| 日本一区二区三级电影在线观看| 国产欧美综合在线| 国产精品久久久久毛片软件| 最新成人av在线| 亚洲国产日日夜夜| 精品无码三级在线观看视频| 国产一区二区三区香蕉| 成人国产精品视频| 在线观看网站黄不卡| 91麻豆精品国产91久久久久久久久| 欧美一区二区不卡视频| 久久免费的精品国产v∧| 中文字幕日韩精品一区| 亚洲国产精品久久久男人的天堂| 麻豆精品久久久| 99热在这里有精品免费| 欧美日韩精品一区二区三区蜜桃| 日韩欧美在线不卡| 综合激情成人伊人| 日韩av一区二区三区| 国产麻豆精品95视频| 色屁屁一区二区| 日韩精品中文字幕一区二区三区| 国产色91在线| 亚洲成年人影院| 精品写真视频在线观看| 色嗨嗨av一区二区三区| 欧美zozozo| 一区二区三区成人在线视频| 免费人成黄页网站在线一区二区 | 另类欧美日韩国产在线| 成人avav在线| 欧美一区二区三区在线| 亚洲视频资源在线| 激情文学综合插| 在线观看91视频| 国产精品久久一级| 蜜臀av一区二区在线观看| 91婷婷韩国欧美一区二区| 欧美va在线播放| 亚洲成a人v欧美综合天堂下载| 成人免费视频app| 日韩欧美二区三区| 亚洲线精品一区二区三区| 成人免费高清视频在线观看| 日韩欧美国产系列| 午夜激情综合网| 色综合天天综合色综合av | av资源站一区| 精品福利二区三区| 午夜精品福利一区二区三区av | 日韩中文字幕区一区有砖一区| 成人永久看片免费视频天堂| 欧美一区二视频| 亚洲精品乱码久久久久久久久 | 国产主播一区二区三区| 欧美日韩国产综合一区二区三区| 1024亚洲合集| 成人精品国产一区二区4080| 国产亚洲精品资源在线26u| 日韩高清欧美激情| 欧美午夜免费电影| 亚洲午夜精品在线| 在线精品视频一区二区| 亚洲精品视频一区| 99精品一区二区三区| 一区在线中文字幕| 成人福利视频在线| 亚洲国产精品ⅴa在线观看| 国产一区日韩二区欧美三区| 欧美一区二区黄| 老司机精品视频在线| 欧美一区二区成人| 久久精品国产亚洲a| 久久影院电视剧免费观看| 国产在线一区二区| 国产精品视频看| 97精品国产97久久久久久久久久久久 | 久久久久久97三级|