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

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

?? av.cs

?? 該即時通訊系統系統能夠實現像QQ一樣的通訊功能
?? CS
字號:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;using System.IO;
using LanMsg.AV;
using System.Runtime.InteropServices;
using System.Net.Sockets;
using System.Net;
using System.Runtime.Serialization;

namespace LanMsg.AV
{
	/// <summary>
	/// Form1 的摘要說明。
	/// </summary>
	
	public class AV:System.IDisposable
	{

		public AV(Control local,Control remote)
		{
			this.local=local;//初始化本地視頻控件
			this.remote=remote;//初始化遠程視頻控件
		}


		#region IDisposable 成員

		public void Dispose()
		{
			if(this.vc!=null)
			{
				this.vc.Preview=false;
				this.vc.Stop();
				this.vc.Disconnect();
				this.vc.Close();
			}
			if(this.chanel!=null)
			{
				try
				{
					this.chanel.Disconnect();
					this.chanel.Close();
				}
				catch(System.Exception ex)
				{
					MessageBox.Show(ex.Message);
				}
			}
			if(this.wi!=null)
			{
				this.wi.Stop();
			}
			if(this.dd!=null)
			{
				this.dd.Close();
			}
			if(this.wo!=null)
			{
				this.wo.Stop();
			}
			if(this.mixer!=null)
			{
				this.mixer.Close();
			}
		}

		#endregion

		private Mixer mixer;
		private Mixer.MixerControlDetail dt,dt2;
		private DrawDib dd;
		private AVChanel chanel;
		private LanMsg.AV.VideoCapturer vc;
		
		private WaveIn wi;
		private WaveOut wo;WAVEFORMATEX wf;
		private Control local,remote;

		#region initial

		public void Initial()
		{
			this.IniChanel();
			this.IniAudio();
			this.IniVideo();
		}

		#region audio
		public void IniAudio()
		{
		
				wf=new WAVEFORMATEX();
				wf.cbSize=0;
				wf.nChannels=1;
				wf.nSamplesPerSec=8000;
				wf.wBitsPerSample=16;
				wf.nBlockAlign=2;
				wf.nAvgBytesPerSec=16000;
				wf.wFormatTag=1;//pcm


				wo=new WaveOut(0,wf,4000,20);
				wo.WaveOutError+=new WaveErrorEventHandler(wo_WaveInError);
				wi=new WaveIn(0,wf,4000,20);
				wi.WaveInError+=new WaveErrorEventHandler(wo_WaveInError);
				wi.WaveCaptured+=new WaveBufferEventHandler(wi_WaveCaptured);
				this.wo.Start();
				this.wi.Start();

			
				this.mixer=new Mixer(this.local);
				dt=new Mixer.MixerControlDetail(this.mixer,Mixer.MIXERLINE_COMPONENTTYPE_DST_SPEAKERS);
				dt2=new Mixer.MixerControlDetail(this.mixer,0x00001000+3);
			try
			{}
			catch{}
		}
		#endregion
		#region video
		public void IniVideoCapture()
		{
				this.vc=new VideoCapturer(this.local,0);
				this.vc.ConnectDevice();
				this.vc.SetPreviewRate(66);
				this.vc.Preview=true;
				LanMsg.AV.CaptureParms cp=this.vc.CaptureParms;
				cp.fAbortLeftMouse=cp.fAbortRightMouse=false;
				cp.fYield=true;
				this.vc.CaptureParms=cp;
				LanMsg.AV.BITMAPINFO h=this.vc.BITMAPINFO;
				h.bmiHeader.biBitCount=24;
				h.bmiHeader.biWidth=320;
				h.bmiHeader.biHeight=240;
				this.vc.BITMAPINFO=h;
				this.vc.VideoCaptured+=new VideoCaptureEventHandler(vc_VideoCaptured);
				this.vc.CaptureWithOutFile();
			try
			{

			}
			catch{}
		}
		public void IniVideoRender()
		{
				BITMAPINFOHEADER bmi=new BITMAPINFOHEADER();

				bmi.biCompression =(int) BI.BI_RGB;
				bmi.biWidth =320;
				bmi.biHeight = 240;
				bmi.biPlanes = 1;
				bmi.biBitCount = 24;
				bmi.biXPelsPerMeter = 0;
				bmi.biYPelsPerMeter = 0;
				bmi.biClrUsed = 0;
				bmi.biClrImportant = 0;
				bmi.biSizeImage=230400;//;57600
				bmi.biSize=Marshal.SizeOf(bmi);
				dd=new DrawDib();
				dd.Control=this.remote;
				dd.BITMAPINFOHEADER=bmi;
				dd.Open();
			try
			{
			}
			catch{}
		}
		public void IniVideo()
		{
			this.IniVideoRender();
			this.IniVideoCapture();
		}
		#endregion
		#region
		public void IniChanel()
		{
			chanel=new AVChanel();
			this.chanel.AudioData+=new AVChanel.AVChanelEventHandler(chanel_AudioData);
			this.chanel.VideoData+=new AVChanel.AVChanelEventHandler(chanel_VideoData);
			this.chanel.Open();
		}

		#endregion
		#endregion
         
		public void BeginAV(byte[] buf,System.Net.IPAddress ServerIp,int ServerPort)//告訴對方開始視頻
		{
			this.chanel.BeginAV(buf,ServerIp,ServerPort);
		}

		public void ReadyStrat(byte[] buf,System.Net.IPAddress ServerIp,int ServerPort)//發送請求到對方,要求視頻對話
		{
            this.chanel.SendAVtoServerRequest(buf,ServerIp,ServerPort);
		}

		public void UDPBurrowNat(System.Net.IPAddress ServerIp,int ServerPort)//UDP打洞
		{
			this.chanel.UDPBurrowNat(ServerIp,ServerPort);
		}

		public void Start(string ip,int p)
		{
			this.chanel.Connect(ip,p);
		}

		public AVChanel Chanel
		{
			get{return this.chanel;}
		}

		//SetWindowPos(hCapWnd, 0, 25, 25, bmi.bmiHeader.biWidth,bmi.bmiHeader.biHeight,0);
		private void chanel_AudioData(object sender, AVChanel.AVChanelEventArgs e)//
		{
			if(this.wo!=null)this.wo.Write(e.Data);//輸出音頻
		}

		private void chanel_VideoData(object sender, AVChanel.AVChanelEventArgs e)//視頻到達事件
		{
			//	byte[] decompressdata=this.dp.Process(e.Data);
			if(this.dd!=null)this.dd.Draw(e.Data,this.remote.Width,this.remote.Height);//輸出視頻
		}
		private void vc_VideoCaptured(object sender, VIDEOHDR hdr)//當捕獲到視頻
		{
			if(this.chanel==null || !this.chanel.Connected)return;
			try
			{
				byte[] data=new byte[hdr.dwBytesUsed];
				Marshal.Copy(hdr.lpData,data,0,hdr.dwBytesUsed);
				this.chanel.SendVideo(data);
			}
			catch(System.Exception ex)
			{
				System.Diagnostics.Trace.WriteLine(ex.Message+":"+ex.StackTrace);
			}
		}
		private void wi_WaveCaptured(object sender, WAVEHDR hdr)//捕獲到音頻
		{

			if(this.chanel==null ||!this.chanel.Connected)return;
			byte[] data=new byte[hdr.dwBytesRecorded];
			System.Runtime.InteropServices.Marshal.Copy(hdr.lpData,data,0,data.Length);
			UT.LowPassWave(this.wi.WAVEFORMATEX,data,data.Length,2500);
			this.chanel.SendAudio(data);

		}

		private void wo_WaveInError(object sender, AVException e)
		{

		}

		public int LocalPort
		{
			get{return this.chanel.LocalPort;}
		}

		public ProgressBar PlayBackVolumeControl;

		public AVChanel AVChanel
		{
			get{return this.chanel;}
		}
	}

	public class AVException:System.Exception
	{
		int m_num=0;
		public AVException():base(){}
		public AVException(int er):base(){this.m_num=er;}
		public AVException(string message):base(message){}
		public AVException(string message,int er):base(message){this.m_num=er;}
		public AVException(SerializationInfo info,StreamingContext context):base(info,context){}
		public int ErrorNumber
		{
			get{return m_num;}
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美国产毛片在线| 亚洲免费观看高清在线观看| jiyouzz国产精品久久| 石原莉奈在线亚洲二区| 亚洲国产精品成人久久综合一区| 在线播放日韩导航| 91麻豆蜜桃一区二区三区| 韩国av一区二区| 亚洲一二三四区| 中文字幕一区在线观看视频| 欧美成人精品福利| 亚洲女与黑人做爰| 欧美精品一区二区三区在线播放 | 久久99久久99| 亚洲在线视频免费观看| 国产精品久久久久久久久免费樱桃| 日韩精品一区二区在线| 欧美精品1区2区| 在线一区二区三区| 92精品国产成人观看免费| 国产成人一级电影| 国产综合久久久久久久久久久久| 手机精品视频在线观看| 亚洲国产日产av| 又紧又大又爽精品一区二区| 国产精品短视频| 中文字幕中文字幕在线一区| 中文字幕乱码一区二区免费| 久久久久久久一区| 亚洲精品一区在线观看| 精品国产一区二区三区忘忧草| 石原莉奈一区二区三区在线观看| 亚洲精品中文在线| 亚洲丝袜美腿综合| 亚洲人成影院在线观看| 国产精品―色哟哟| 国产精品成人免费| 综合久久久久综合| 亚洲色图欧美偷拍| 亚洲天堂a在线| 一区二区三区国产精华| 依依成人综合视频| 亚洲国产精品人人做人人爽| 亚洲图片一区二区| 视频在线观看国产精品| 日韩电影一二三区| 极品少妇xxxx偷拍精品少妇| 国产美女在线观看一区| 国产成人在线网站| a美女胸又www黄视频久久| 不卡区在线中文字幕| 91在线免费播放| 色猫猫国产区一区二在线视频| 色吧成人激情小说| 欧美日韩一二三区| 亚洲一级片在线观看| 五月激情综合婷婷| 久久精品二区亚洲w码| 国产精品一级片在线观看| 成人av网站在线观看| 91丨国产丨九色丨pron| 欧美日本一区二区三区四区| 欧美一区二区美女| 久久久高清一区二区三区| 中文字幕日韩一区二区| 一区二区三区中文在线| 美女一区二区在线观看| 国产精品一区二区91| 91香蕉国产在线观看软件| 欧美老肥妇做.爰bbww| 欧美mv日韩mv国产网站| 亚洲国产成人午夜在线一区| 一区二区三区国产精华| 久久99国产精品免费| 成人免费毛片a| 欧美三级乱人伦电影| 337p日本欧洲亚洲大胆精品| 国产精品久久二区二区| 亚洲综合一区二区精品导航| 精品亚洲欧美一区| 国产·精品毛片| 欧美日韩一区二区三区在线| 久久久蜜臀国产一区二区| 亚洲黄色性网站| 国精产品一区一区三区mba桃花 | 国产精品亚洲成人| 91小视频免费观看| 精品成人免费观看| 尤物在线观看一区| 国产精品亚洲第一| 777欧美精品| 中文字幕日韩av资源站| 精品一区二区三区视频在线观看 | 成人一级视频在线观看| 欧美高清视频一二三区 | 国产区在线观看成人精品| 亚洲午夜久久久久久久久电影网| 韩日av一区二区| 欧美亚洲禁片免费| 国产欧美一区二区在线| 日韩精品高清不卡| 色欲综合视频天天天| 久久久久97国产精华液好用吗| 亚洲成人你懂的| 99精品视频免费在线观看| 精品成人免费观看| 日韩不卡一区二区| 欧美性色黄大片手机版| 中文字幕免费不卡| 国产精一品亚洲二区在线视频| 欧美另类z0zxhd电影| 亚洲人成网站在线| 成人国产精品免费| 久久久精品欧美丰满| 蜜桃一区二区三区在线| 欧美色精品在线视频| 亚洲欧美日韩中文字幕一区二区三区 | 日本一区二区三区四区在线视频 | 国产一区二区成人久久免费影院| 欧美日高清视频| 亚洲综合色婷婷| 色婷婷综合视频在线观看| 国产精品免费人成网站| 粉嫩av一区二区三区粉嫩| 久久综合九色综合97_久久久| 免费欧美在线视频| 777午夜精品视频在线播放| 亚洲成人手机在线| 欧美日韩国产一区二区三区地区| 一区二区三区在线看| 91在线视频官网| 亚洲色欲色欲www| 91在线视频18| 亚洲免费资源在线播放| 99久久er热在这里只有精品15 | 色域天天综合网| 亚洲男人天堂一区| 色欧美片视频在线观看 | 婷婷久久综合九色综合伊人色| 色综合久久综合网97色综合| 亚洲视频图片小说| 色吊一区二区三区| 五月天一区二区三区| 91精品国产综合久久久久久漫画| 青青草伊人久久| 精品精品国产高清一毛片一天堂| 极品少妇xxxx偷拍精品少妇| 2020国产精品久久精品美国| 国产精品资源网站| 国产精品九色蝌蚪自拍| 日本韩国精品一区二区在线观看| 亚洲综合图片区| 日韩一区二区三区三四区视频在线观看| 日本亚洲电影天堂| 久久久精品黄色| 99re8在线精品视频免费播放| 一区二区三区四区五区视频在线观看| 在线观看日韩电影| 秋霞午夜av一区二区三区| 26uuu精品一区二区三区四区在线| 国产一区三区三区| 亚洲欧洲av另类| 欧美日韩国产高清一区| 久久99热狠狠色一区二区| 国产人伦精品一区二区| 日本高清免费不卡视频| 日韩在线a电影| 国产日韩成人精品| 欧美亚一区二区| 久久99国产精品久久| 国产精品久久精品日日| 欧美丰满高潮xxxx喷水动漫| 国产一区二区三区免费| 亚洲欧美自拍偷拍色图| 欧美一区二视频| 本田岬高潮一区二区三区| 亚洲va欧美va天堂v国产综合| 久久只精品国产| 91国产成人在线| 国产剧情一区在线| 亚洲大片精品永久免费| 国产欧美日韩另类视频免费观看| 在线中文字幕一区二区| 国产精品夜夜嗨| 日韩精品乱码免费| 亚洲欧洲韩国日本视频| 26uuu亚洲婷婷狠狠天堂| 在线观看日韩一区| 国产成人午夜电影网| 亚洲成av人片一区二区梦乃| 国产欧美一区二区三区沐欲| 欧美日本韩国一区二区三区视频| 国产传媒日韩欧美成人| 三级亚洲高清视频| 日韩美女视频19| 国产亚洲一二三区| 欧美一区二区女人| 欧美色精品在线视频| av动漫一区二区| 国产精品亚洲第一区在线暖暖韩国|