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

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

?? audiocapture.java

?? 圖片播放器
?? JAVA
字號:
package sunstudio.record.au.audio.capture;

import com.ms.dll.*;
import com.ms.win32.*;
import java.util.*;
import sunstudio.util.*;

public class AudioCapture{
	Vector listeners=new Vector();
	DllLib dlllib;
	int bufferlen=10;
	byte[][] data=new byte[bufferlen][1600];
	int dataPtr=0;
	WAVEINCAPS waveincaps;
	WAVEHDR[] wavehdr;
	int[] deviceid=new int[2];
	boolean useful=false;
	c wcb;
	boolean pause=true;//默認為暫停狀態
	boolean isclose=false;
	boolean stop=false;
	String audioOutInfo="GSM.723(165b/0.1s)";
	private static final int WAVE_MAPPER=-1;
	private static final int MMSYSERR_NOERROR=0;
	private static final int CALLBACK_FUNCTION=0x00030000;
	private static final int MM_WIM_OPEN=0x3BE;
	private static final int MM_WIM_DATA=0x3C0;
	private static final int MM_WIM_CLOSE=0x3BF;
	WAVEFORMATEX waveformatex=null;
	int muteValue=2500;
				  
	public AudioCapture(){
        waveformatex=new WAVEFORMATEX();//音頻采集格式
		waveformatex.wFormatTag=1;
		waveformatex.nChannels=1;
		waveformatex.wBitsPerSample=16;
		waveformatex.nSamplesPerSec=8000;
		waveformatex.nBlockAlign=(short)((waveformatex.nChannels*waveformatex.wBitsPerSample)/8);
		waveformatex.nAvgBytesPerSec=waveformatex.nSamplesPerSec*waveformatex.nBlockAlign;
		waveformatex.cbSize=0;
		dlllib=new DllLib();
		waveincaps=new WAVEINCAPS();
		wavehdr=new WAVEHDR[bufferlen];
	}
	public void addAudioDataListener(AudioDataListener lter){
		listeners.addElement(lter);
	}
	void applyBuffer(){
		for(int i=0;i<bufferlen;i++){
			wavehdr[i]=new WAVEHDR();
			int adr=dlllib.addrOfPinnedObject(dlllib.getPinnedHandle(data[i]));
			wavehdr[i].lpData=adr;
			wavehdr[i].dwBufferLength=1600;
			wavehdr[i].dwUser=i;
			wavehdr[i].dwFlags=0;
			wavehdr[i].dwLoops=0;
		}
	}
	int chkData(byte[] a){//將整型低16位高低位交叉并轉為字節
		int max=0;
		for(int i=0;i<800;i++){
			short m=(short)(SystemTool.byteToShort(a[2*i],a[2*i+1]));
			a[2*i]=(byte)(m&0xff);
			a[2*i+1]=(byte)(m>>>8&0xff);
			if(Math.abs(m)>Math.abs(max))max=m;
		}
		return max;
	}
	public void close(){
		if(!useful)return;
		isclose=true;
		waveInStop(deviceid[0]);
		waveInReset(deviceid[0]);
		waveInClose(deviceid[0]);
	}
	public String getAudioOutInfo(){
		return audioOutInfo;
	}
	public boolean isUseful(){
		return useful;
	}
	synchronized void notifyListener(int minValue,byte[] audioData){
		AudioDataEvent evt=new AudioDataEvent(minValue,audioData);
		for(Enumeration enu=listeners.elements();enu.hasMoreElements();)
			((AudioDataListener)enu.nextElement()).onAudioDataArrived(evt);
	}
	public boolean open(){
		useful=openDevice();
		return useful;
	}
	boolean openDevice(){
		if(waveInGetNumDevs()<1)return false;
		if(waveInGetDevCaps(WAVE_MAPPER,waveincaps,dlllib.sizeOf(waveincaps))!=MMSYSERR_NOERROR)return false;
		wcb=new c(this);
		int hndpro=Root.alloc(wcb);
		int adrpro=dlllib.addrOf(hndpro);
		if(waveInOpen(deviceid,WAVE_MAPPER,waveformatex,adrpro,0,CALLBACK_FUNCTION)!=MMSYSERR_NOERROR)return false;
		applyBuffer();
		for(int i=0;i<bufferlen;i++)
			if(waveInPrepareHeader(deviceid[0],wavehdr[i],dlllib.sizeOf(wavehdr[i]))!=MMSYSERR_NOERROR)
				return false;
		if(waveInStart(deviceid[0])!=MMSYSERR_NOERROR)return false;
		return true;
	}
	void processData(int addrHdr){
		if(isclose&&stop)return;
		waveInAddBuffer(deviceid[0],wavehdr[dataPtr],dlllib.sizeOf(wavehdr[dataPtr]));
		dataPtr++;
		dataPtr%=bufferlen;
		try{
			WAVEHDR tmp=(WAVEHDR)dlllib.ptrToStruct(WAVEHDR.class,addrHdr);
			if(!pause){
				int max=chkData(data[tmp.dwUser]);
				if(Math.abs(max)<muteValue)notifyListener(0,null);
				else notifyListener(max,data[tmp.dwUser]);//Codec.encode(data[tmp.dwUser]));
			}
		}catch(Exception ee){}
	}
	/////////////////////////////////////////////////////
	public void suspend_record(){
		pause=true;
	}
	public void resume_record(){
		pause=false;
	}	
	public void start_record(){
		pause=false;
		stop=false;
		waveInAddBuffer(deviceid[0],wavehdr[dataPtr],dlllib.sizeOf(wavehdr[dataPtr]));
	}
	public void stop_record(){
		stop=true;
		pause=true;
	}
	/////////////////////////////////////////////////////
/*	public void setFilter(double volvalue){
		if(volvalue<0||volvalue>1)return;
		filter=(float)volvalue;
	}
*/
	public void setMuteValue(int muteValue){
		this.muteValue=muteValue;
	}
	/**@dll.import("WINMM",auto)*/
	private static native int waveInGetDevCaps(int uDeviceID,WAVEINCAPS pwic,int cbwic);
	/**@dll.import("WINMM",auto)*/
	private static native int waveInGetNumDevs();
	/**@dll.import("WINMM",auto)*/
	private static native int waveInOpen(int[] phwi,int uDeviceID,WAVEFORMATEX pwfx,int dwCallback,int dwInstance,int fdwOpen);
	/**@dll.import("WINMM",auto)*/
	private static native int waveInAddBuffer(int hwi,WAVEHDR pwh,int cbwh);
	/**@dll.import("WINMM",auto)*/
	private static native int waveInStart(int hwi);
	/**@dll.import("WINMM",auto)*/
	private static native int waveInPrepareHeader(int hwi,WAVEHDR pwh, int cbwh);
	/**@dll.import("WINMM",auto)*/
	private static native int waveInStop(int hwi);
	/**@dll.import("WINMM",auto)*/
	private static native int waveInClose(int hwi);
	/**@dll.import("WINMM",auto)*/
	public static native int waveInReset(int hwi);
	private class c extends Callback{
		AudioCapture record;
		c(AudioCapture tt){
			record=tt;
		}
	    private boolean callback(int hwi,int msg,int dwInstance,int dwParam1,int dwParam2){
			switch(msg){
			case AudioCapture.MM_WIM_DATA:
				record.processData(dwParam1);
				break;
			case AudioCapture.MM_WIM_OPEN:
				break;
			case AudioCapture.MM_WIM_CLOSE:
			}
			return true;
	    }
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美挠脚心视频网站| 欧美探花视频资源| 亚洲嫩草精品久久| 欧美疯狂做受xxxx富婆| 亚洲黄色小说网站| 中文字幕在线不卡视频| 97精品视频在线观看自产线路二| 亚洲午夜免费视频| 日韩手机在线导航| 色婷婷综合久色| 麻豆成人91精品二区三区| 国产精品高清亚洲| 精品福利在线导航| 日本高清不卡视频| 亚洲自拍偷拍图区| 99国产精品一区| 中文字幕字幕中文在线中不卡视频| 成人激情免费网站| 美腿丝袜在线亚洲一区 | 国产日韩精品一区| 欧美精品色综合| 欧美午夜电影一区| 久久99国产精品免费网站| 亚洲女人的天堂| 久久影视一区二区| 欧美美女bb生活片| 一本一道久久a久久精品| 久久99热99| 亚洲男同性视频| 成人欧美一区二区三区黑人麻豆 | 日韩一区二区在线看片| 91免费国产在线| 日韩国产高清在线| 天天操天天干天天综合网| 综合久久一区二区三区| 69堂精品视频| 欧美精品久久一区| 在线欧美日韩国产| 99精品欧美一区二区三区综合在线| 精品中文字幕一区二区小辣椒| 亚洲国产精品久久久久婷婷884 | 国产丝袜在线精品| 日韩精品专区在线影院观看| 91在线视频网址| 高清av一区二区| 狠狠狠色丁香婷婷综合激情 | 久久成人av少妇免费| 麻豆国产欧美日韩综合精品二区| 亚洲第一福利一区| 亚洲与欧洲av电影| 伊人婷婷欧美激情| 亚洲三级电影全部在线观看高清| 欧美va亚洲va| 日韩欧美视频在线| 91精品国产免费| 日韩一区二区中文字幕| 欧美高清www午色夜在线视频| 欧美色老头old∨ideo| 欧洲一区在线电影| 99久久精品99国产精品 | 国产日韩一级二级三级| 欧美美女直播网站| 欧美日本一区二区在线观看| 欧美在线免费观看视频| 国产99精品视频| 紧缚奴在线一区二区三区| 奇米四色…亚洲| 精品一区二区免费| 国产成人一级电影| 成人午夜免费视频| 在线观看免费成人| 91精品婷婷国产综合久久性色 | 91婷婷韩国欧美一区二区| 欧洲人成人精品| 欧美不卡一区二区三区四区| 日本一区二区三区电影| 亚洲午夜av在线| 捆绑调教一区二区三区| 成人a区在线观看| 欧美日韩免费观看一区二区三区| 日韩一区二区在线看片| 国产精品三级av在线播放| 亚洲一区二区精品久久av| 男人的天堂久久精品| 成人免费看片app下载| 欧美色综合网站| 久久丝袜美腿综合| 亚洲国产乱码最新视频 | www.一区二区| 欧美精品高清视频| 国产精品欧美一区二区三区| 玖玖九九国产精品| 99re免费视频精品全部| 日韩手机在线导航| 一区二区三区不卡视频在线观看| 日韩电影免费一区| 99久久免费国产| 精品欧美一区二区三区精品久久| 亚洲欧美视频在线观看| 精品制服美女丁香| 欧美三级日韩三级国产三级| 欧美激情一区二区三区蜜桃视频| 肉色丝袜一区二区| 一本大道av一区二区在线播放| 精品久久免费看| 亚洲成人av免费| 成人99免费视频| 久久久精品2019中文字幕之3| 偷窥少妇高潮呻吟av久久免费 | 日韩欧美一级片| 一区二区三区中文字幕| 国产成人精品影视| 欧美成人艳星乳罩| 五月天亚洲婷婷| 欧美中文字幕一区二区三区亚洲| 中文字幕乱码一区二区免费| 久久精品免费观看| 欧美日韩一区二区三区高清| 亚洲日本在线看| 波多野结衣的一区二区三区| 精品国产成人在线影院| 午夜精品一区在线观看| 欧美亚洲国产bt| 伊人开心综合网| 色88888久久久久久影院野外| 中文字幕av一区二区三区| 国产一区二区三区免费在线观看| 91精品国产高清一区二区三区| 亚洲精品成人天堂一二三| 99精品视频一区二区| 中文字幕在线视频一区| 国产91露脸合集magnet| 国产欧美日韩麻豆91| 国产一区二区三区在线观看免费| 精品国产一区二区精华| 蜜臀va亚洲va欧美va天堂 | 亚洲裸体xxx| 91在线精品一区二区| 亚洲人吸女人奶水| 94色蜜桃网一区二区三区| 一区在线播放视频| 99精品视频在线观看| 国产精品不卡在线观看| 色综合久久88色综合天天6| 蜜臀精品久久久久久蜜臀| 欧美第一区第二区| 国产伦精品一区二区三区视频青涩 | 国产麻豆视频精品| 久久精品在线观看| 高清国产一区二区三区| 国产精品三级av| 一本久久精品一区二区| 亚洲午夜电影网| 日韩一级高清毛片| 国产一区欧美日韩| 国产精品久久午夜| 91黄视频在线| 爽好多水快深点欧美视频| 欧美不卡一区二区三区四区| 国产老肥熟一区二区三区| 国产午夜亚洲精品不卡| av在线播放不卡| 一区二区视频免费在线观看| 欧美中文字幕一区二区三区 | 麻豆国产欧美一区二区三区| 久久嫩草精品久久久久| 国产91精品一区二区麻豆网站| 亚洲欧美福利一区二区| 欧美日韩美少妇| 国产精品白丝jk白祙喷水网站| 亚洲欧洲精品成人久久奇米网| 日本乱码高清不卡字幕| 久久成人18免费观看| 最好看的中文字幕久久| 欧美人与性动xxxx| 国产91精品一区二区麻豆网站| 一区二区激情小说| 精品久久久久久最新网址| 不卡的av中国片| 日韩国产高清影视| 亚洲欧洲精品一区二区精品久久久 | 欧美久久免费观看| 国产91精品在线观看| 天堂一区二区在线| 欧美极品xxx| 日韩一区二区在线观看视频| www.综合网.com| 免费观看成人av| 成人免费在线视频| 精品三级在线看| 欧美揉bbbbb揉bbbbb| 成人精品免费网站| 日韩不卡免费视频| 亚洲伦理在线精品| 国产午夜精品久久| 日韩一级完整毛片| 色88888久久久久久影院野外| 国产成人亚洲综合色影视| 石原莉奈在线亚洲二区| 最新国产精品久久精品|