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

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

?? audioplayer.java

?? 利用JAVA applet編寫的錄音機(jī)
?? JAVA
字號:
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
    };
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91.麻豆视频| 国产在线一区二区综合免费视频| 国产欧美一区视频| av不卡一区二区三区| 欧美精品一区二区三区视频| heyzo一本久久综合| 亚洲va天堂va国产va久| 99久久伊人网影院| 99国内精品久久| av电影在线观看不卡| 成人国产在线观看| 欧美在线视频你懂得| 久久天堂av综合合色蜜桃网| 国产一区 二区 三区一级| 欧美激情资源网| 亚洲成人三级小说| 91麻豆精品国产自产在线 | 狠狠色伊人亚洲综合成人| 亚洲青青青在线视频| 亚洲一二三级电影| 国产一区二区在线免费观看| 日韩久久久久久| 亚洲免费视频中文字幕| 日韩高清国产一区在线| 99久久国产综合色|国产精品| 欧美日韩国产经典色站一区二区三区 | 亚洲成av人综合在线观看| 欧美精品欧美精品系列| 91麻豆国产精品久久| 97久久超碰国产精品电影| 欧美一区二区三区免费在线看| 一本色道**综合亚洲精品蜜桃冫| 国精产品一区一区三区mba桃花| www..com久久爱| 日韩欧美久久一区| 日本精品一区二区三区四区的功能| 一区二区三区日韩在线观看| 亚洲成人av福利| 国产欧美综合色| 91精品国产综合久久小美女| a亚洲天堂av| 久久69国产一区二区蜜臀| 国产午夜精品一区二区| 一区二区三区在线看| 日本最新不卡在线| **网站欧美大片在线观看| 7777精品伊人久久久大香线蕉最新版| 狠狠色丁香久久婷婷综| 日日夜夜精品视频免费| 国产精品国产三级国产三级人妇| 日韩欧美资源站| 欧美伊人久久久久久久久影院| 国产一区二区三区视频在线播放| 亚洲成人精品影院| 一区二区三区在线免费播放| 亚洲国产成人私人影院tom| 精品三级在线看| 欧美一区二区三区小说| 欧美系列日韩一区| 91影院在线免费观看| 成人一级片网址| 国产在线精品不卡| 韩国av一区二区| 乱中年女人伦av一区二区| 日韩精品每日更新| 国产激情一区二区三区| 亚洲一区中文日韩| 日韩美女在线视频| 久久精品国产一区二区三区免费看| 欧美亚洲一区二区三区四区| 成人av在线电影| 国产精品一区二区视频| 极品少妇xxxx偷拍精品少妇| 日韩av一二三| 日本网站在线观看一区二区三区| 亚洲一区二区欧美日韩| 亚洲国产精品欧美一二99 | 日韩一二三区视频| 91精品午夜视频| 日韩美一区二区三区| 精品久久久久久综合日本欧美| 日韩精品中文字幕一区二区三区| 日韩亚洲欧美成人一区| 欧美一区欧美二区| 欧美zozozo| 久久久久高清精品| 国产精品理论在线观看| 成人欧美一区二区三区小说 | 一区二区三区四区精品在线视频| 日韩视频一区二区| 亚洲综合区在线| 久久精品免费在线观看| 国产精品妹子av| 亚洲精品日韩专区silk| 一区二区三区成人在线视频| 亚洲五码中文字幕| 麻豆精品在线播放| 成年人网站91| 欧美日韩国产色站一区二区三区| 欧美巨大另类极品videosbest | 欧美日韩aaaaa| 欧美成人video| 欧美韩日一区二区三区| 国产精品一二三在| 成人av在线资源| 欧美三级乱人伦电影| 日韩午夜精品电影| 精品久久久三级丝袜| 一区二区三区在线高清| 日本一区二区在线不卡| 91精彩视频在线观看| 欧美日韩www| 久久亚洲免费视频| 亚洲美女视频在线| 蜜臀99久久精品久久久久久软件| 国产69精品久久777的优势| 日本高清无吗v一区| 26uuu国产日韩综合| 亚洲视频一区二区在线| 另类小说图片综合网| 97久久精品人人爽人人爽蜜臀 | 国产传媒日韩欧美成人| 欧美色国产精品| 国产女同性恋一区二区| 亚洲成a人v欧美综合天堂下载| 国产精品123区| 日韩一区二区影院| 亚洲黄一区二区三区| 国产在线播放一区三区四| 欧美中文字幕一二三区视频| 国产日韩精品一区二区三区| 亚洲 欧美综合在线网络| 成人黄色av电影| 欧美成人a视频| 亚洲成av人片在线观看无码| 成人永久aaa| 精品欧美乱码久久久久久1区2区| 成人免费小视频| 国产高清在线精品| 日韩一区二区精品在线观看| 一区二区三区在线观看动漫| 成人精品国产一区二区4080| 久久综合九色综合欧美98| 午夜电影一区二区| 色94色欧美sute亚洲线路一久| 9191成人精品久久| 亚洲福利一二三区| 色诱视频网站一区| 中文字幕一区二区三区在线观看| 国内外成人在线| 欧美一区二区视频免费观看| 亚洲一二三专区| 99riav一区二区三区| 国产日韩欧美精品电影三级在线| 老色鬼精品视频在线观看播放| 欧美男生操女生| 亚洲制服丝袜av| 欧美性高清videossexo| 日韩美女视频19| 99久久亚洲一区二区三区青草| 久久久激情视频| 国产aⅴ综合色| 国产欧美精品一区二区色综合 | 日韩精品中文字幕一区| 天天色 色综合| 欧美一区二区观看视频| 日韩电影在线观看电影| 欧美男女性生活在线直播观看| 亚洲制服欧美中文字幕中文字幕| 91精品1区2区| 婷婷夜色潮精品综合在线| 欧美日韩国产一级| 成人a免费在线看| 中文乱码免费一区二区| 成人av影视在线观看| 亚洲视频在线一区| 色菇凉天天综合网| 一区二区久久久久| 欧美人体做爰大胆视频| 麻豆成人久久精品二区三区小说| 欧美成人精品福利| 国产一区二区三区在线观看精品| 久久久久一区二区三区四区| 国产99久久久国产精品潘金网站| 国产精品三级av| 91蜜桃传媒精品久久久一区二区| 亚洲一区二区在线播放相泽| 欧美一区二区视频观看视频| 九一九一国产精品| 国产精品久久久久9999吃药| 欧美在线小视频| 久久国产三级精品| 国产精品美女久久福利网站| 色狠狠综合天天综合综合| 喷水一区二区三区| 国产精品日日摸夜夜摸av| 色综合久久88色综合天天6 | 亚洲精品乱码久久久久久黑人 | 亚洲精品一区二区在线观看| 成人免费观看av|