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

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

?? myendpoint.cpp

?? 一個(gè)簡(jiǎn)單的視頻會(huì)議VC++MFC工程文件
?? CPP
字號(hào):
/*
*/
// MyEndPoint.cpp: implementation of the CMyEndPoint class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "VISEP.h"
#include "MyEndPoint.h"
#include "VISEPDlg.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//捕獲視頻流
void CMyVideoGrabber::OnStream(BYTE *frame,int width,int height)
{
	//實(shí)現(xiàn)顯示本地視頻
	BYTE * p=m_dlg.m_localVideo.GetBuffer(width,height);
	if(p)
	{
		memcpy(p,frame,width*height*3);
		m_dlg.m_localVideo.ReleaseBuffer();
	}
}
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMyEndPoint::CMyEndPoint(CVISEPDlg &dlg):CH323EndPoint(TRUE),m_dlg(dlg),m_grabber(dlg)
{
	
}

CMyEndPoint::~CMyEndPoint()
{

}

CString CMyEndPoint::GetRemoteName(DWORD connID)
{
	CString ret;
	char name[256]="";
	GetRemotePartyName(connID,name,256);
	ret=name;
	//去掉remotePartyName后面跟的IP地址
	int i=ret.ReverseFind('[');
	if(i>=0)
	{
		ret.Delete(i,ret.GetLength()-i);
		ret.TrimRight(' ');
	}
	return ret;

}

void CMyEndPoint::OnAnswerCall(DWORD connID,const char *RoomID)
{
	m_dlg.OnAnswerCall(connID);
}

void CMyEndPoint::OnWaitForAnswer(DWORD connID)
{
	m_dlg.OnWaitForAnswer();
}

void CMyEndPoint::OnConnectionCleared(DWORD connID, DWORD duration,enum CallEndReason reason)
{
	m_dlg.OnCallEnded(duration,reason);
}

void CMyEndPoint::OnConnectionEstablished(DWORD connID)
{
	m_dlg.OnTalking();
}

void CMyEndPoint::OnReceiveUserInput(DWORD connID,const char* value)
{

}

void CMyEndPoint::OnReceiveNonStandardMsg(DWORD connID,const char* value)
{
	m_dlg.OnReceiveNonStandardMsg(value);
}

BOOL CMyEndPoint::OnRenderAudioFrame(DWORD connID,BYTE* frame,int len)
{
	//直接將數(shù)據(jù)輸出到播放設(shè)備
	return m_player.Write(frame,len);
}

BOOL CMyEndPoint::OnReadAudioFrame(DWORD connID,BYTE* frame,int len)
{
	//直接從錄音設(shè)備讀取數(shù)據(jù)
	return m_recorder.Read(frame,len);
}
	
BOOL CMyEndPoint::OnAudioStop(DWORD connID, BOOL outgoing,const char *CodecName)
{
	if(outgoing)
	{
		m_recorder.Close();
	}
	else
	{
		m_player.Close();
	}
	return TRUE;
}

BOOL CMyEndPoint::OnAudioStart(DWORD connID,BOOL outgoing,const char *CodecName)
{
	BOOL ret=FALSE;
	CWinApp *app=AfxGetApp();
	if(outgoing)
	{
		//打開(kāi)錄音設(shè)備
		ret=m_recorder.Open(app->GetProfileInt("",KEY_AUDIO_INPUT_DEVICE,0));
	}
	else
	{
		//打開(kāi)播放設(shè)備	
		ret=m_player.Open(app->GetProfileInt("",KEY_AUDIO_OUTPUT_DEVICE,0));
	}
	return ret;
}

BOOL CMyEndPoint::OnRenderVideoFrame(DWORD connID,BYTE *frame, int width, int height)
{
	//畫(huà)出遠(yuǎn)端視頻
	BYTE * p=m_dlg.m_remoteVideo.GetBuffer(width,height);
	if(p)
	{
		memcpy(p,frame,width*height*3);
		m_dlg.m_remoteVideo.ReleaseBuffer();
	}
	return TRUE;
}

BOOL CMyEndPoint::OnReadVideoFrame(DWORD connID,BYTE* frame,int width,int height)
{
	//從視頻捕獲設(shè)備讀取視頻幀
	return m_grabber.Read(frame,width,height);
}
	
BOOL CMyEndPoint::OnVideoStop(DWORD connID,BOOL outgoing,const char *CodecName)
{
	if(outgoing)
	{
		//停止發(fā)送視頻。如果本地視頻窗口沒(méi)有開(kāi)啟,就將視頻捕獲設(shè)備關(guān)閉
		if(m_dlg.m_localVideo.m_hWnd==NULL)
		{
			m_grabber.Close();
		}
		m_dlg.GetMenu()->ModifyMenu(ID_SEND_VIDEO,MF_BYCOMMAND|MF_STRING,ID_SEND_VIDEO,"開(kāi)始發(fā)送視頻(&S)");
	}
	else
	{	
		//停止接收遠(yuǎn)端視頻。如果遠(yuǎn)端視頻窗口開(kāi)啟,自動(dòng)將它關(guān)閉
		if(m_dlg.m_remoteVideo.m_hWnd!=NULL)
			m_dlg.SendMessage(WM_COMMAND,ID_REMOTE_VIDEO);
	}
	return TRUE;
}

BOOL CMyEndPoint::OnVideoStart(DWORD connID,BOOL outgoing,const char* CodecName)
{
	BOOL ret=FALSE;
	if(outgoing)
	{
		//開(kāi)始發(fā)送視頻
		if(m_grabber.IsOpened())
		{
			//視頻捕捉設(shè)備已經(jīng)開(kāi)啟
			ret=TRUE;
		}
		else
		{
			//打開(kāi)視頻捕捉設(shè)備
			CWinApp *app=AfxGetApp();
			ret=m_grabber.Open(app->GetProfileInt("",KEY_VIDEO_DEVICE,0));
			if(ret)
			{
				m_dlg.GetMenu()->ModifyMenu(ID_SEND_VIDEO,MF_BYCOMMAND|MF_STRING,ID_SEND_VIDEO,"停止發(fā)送視頻(&S)");
			}
		}
	}
	else
	{
		//開(kāi)始接收遠(yuǎn)端視頻
		if(m_dlg.m_remoteVideo.m_hWnd==NULL)
			m_dlg.SendMessage(WM_COMMAND,ID_REMOTE_VIDEO);
		ret=TRUE;
	}
	return ret;
}

void CMyEndPoint::OnUseGatekeeper(enum UseGKResult result,const char* name_GK)
{
	if(result==RegistrationSuccessful)
	{
		//成功登錄到網(wǎng)守
		m_dlg.GetMenu()->EnableMenuItem(ID_LOGOUT,MF_BYCOMMAND|MF_ENABLED);
		CString s;
		s.Format("網(wǎng)守: %s",name_GK);
		m_dlg.m_statusBar.SetText(s,3,0);
	}
	else
	{
		AfxMessageBox("登錄網(wǎng)守失敗!");
		m_dlg.GetMenu()->EnableMenuItem(ID_LOGIN,MF_BYCOMMAND|MF_ENABLED);
		m_dlg.m_statusBar.SetText("未登錄到網(wǎng)守",3,0);
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品色| 欧美xxxx在线观看| jizzjizzjizz欧美| 床上的激情91.| 国产凹凸在线观看一区二区| 国产专区欧美精品| 国产精品1区2区| 色激情天天射综合网| 欧美人xxxx| 26uuu亚洲| 一区二区三区中文字幕| 一区二区三区中文免费| 日本亚洲天堂网| 国产一区999| 欧美精品丝袜久久久中文字幕| 精品人在线二区三区| 国产精品久久久久久久久图文区 | 欧美不卡一区二区| 国产女人水真多18毛片18精品视频| 国产精品无圣光一区二区| 亚洲三级理论片| 国产一区二区免费看| 欧美另类变人与禽xxxxx| 欧美男男青年gay1069videost| 国产精品美女久久久久久2018| 亚洲综合色在线| 成人免费视频国产在线观看| 欧美日韩成人综合天天影院| 中文字幕一区二区三区视频| 久久99精品国产.久久久久| 欧美日韩精品免费观看视频| 国产精品理论在线观看| 成人的网站免费观看| 精品福利一区二区三区免费视频| 日日摸夜夜添夜夜添精品视频| 国产91精品欧美| 国产精品成人一区二区艾草| 粉嫩蜜臀av国产精品网站| 精品国产sm最大网站免费看| 蜜臀av亚洲一区中文字幕| 欧美一级国产精品| 人人精品人人爱| 久久亚洲影视婷婷| 国产成人精品免费| 亚洲精品福利视频网站| 在线观看一区不卡| 麻豆国产欧美日韩综合精品二区| 日韩午夜av电影| 成人免费毛片aaaaa**| 亚洲精品福利视频网站| 欧美一级久久久久久久大片| 国产精品69毛片高清亚洲| 一区2区3区在线看| 日韩一区二区三区电影| www.亚洲精品| 亚洲第一成人在线| 日韩av一区二区三区四区| 在线视频一区二区三区| 国产一区高清在线| 亚洲综合在线观看视频| 欧美精品一区二区精品网| 欧美性高清videossexo| 丁香婷婷综合五月| 蓝色福利精品导航| 日韩电影免费在线| 伊人色综合久久天天| 国产欧美一区二区三区鸳鸯浴 | 亚洲一区二区三区四区中文字幕| 欧美一区二区免费视频| 欧美日韩一区三区| 在线中文字幕不卡| 色综合亚洲欧洲| 91天堂素人约啪| 99国产精品视频免费观看| 丁香五精品蜜臀久久久久99网站| 国产麻豆成人传媒免费观看| 国产一区二区在线看| 美女性感视频久久| 国产一区在线视频| 成人美女在线观看| 色狠狠桃花综合| 欧美精品777| 精品久久国产字幕高潮| 精品久久久久久无| 国产亚洲女人久久久久毛片| 国产精品第一页第二页第三页| 一区二区三区免费看视频| 日韩精品一级中文字幕精品视频免费观看| 天堂午夜影视日韩欧美一区二区| 美女视频一区二区| 91在线视频18| 久久视频一区二区| 亚洲国产日韩一区二区| 狠狠色2019综合网| 91精品国产综合久久久久久久| 亚洲精品一区在线观看| 一区二区三区在线免费观看| 日韩国产欧美在线观看| 91网站黄www| 国产精品丝袜黑色高跟| 九一久久久久久| 欧美高清一级片在线| 一区在线观看免费| 国产精品一区二区在线播放| 欧美成人vps| 久久激情五月激情| 精品美女被调教视频大全网站| 亚洲一区在线电影| 欧美三级午夜理伦三级中视频| 久久亚洲综合色一区二区三区| 激情综合色综合久久| 亚洲精品在线观看视频| 美女网站在线免费欧美精品| 欧美变态tickling挠脚心| 日韩激情一区二区| www激情久久| 丰满放荡岳乱妇91ww| 中文字幕中文字幕一区| av电影天堂一区二区在线观看| 日本一二三四高清不卡| 成人精品国产免费网站| 亚洲欧美日韩精品久久久久| 色哟哟精品一区| 不卡视频在线观看| 91精品国产手机| 国产成人午夜视频| 国产精品福利影院| 欧美日韩在线三区| 国产一区美女在线| 综合中文字幕亚洲| 欧美成人精精品一区二区频| 国产99久久久国产精品| 亚洲无人区一区| 精品成人佐山爱一区二区| 97精品国产97久久久久久久久久久久| 一区二区三区日韩在线观看| 日韩欧美亚洲一区二区| 日本高清无吗v一区| 国产精品一区一区三区| 爽好久久久欧美精品| 中文字幕亚洲在| 国产精品久久免费看| 欧亚一区二区三区| 国产河南妇女毛片精品久久久| 亚洲va国产va欧美va观看| 国产午夜一区二区三区| 精品国产不卡一区二区三区| 日韩精品一区二区在线| 91精品久久久久久蜜臀| 日韩午夜小视频| 日韩一级片网站| 日韩精品一区国产麻豆| 精品伦理精品一区| 日本一区二区三区高清不卡| 中文在线一区二区| 国产精品成人免费在线| 亚洲精品成人悠悠色影视| 一区二区三区中文字幕| 亚洲一区二区免费视频| 日韩一区精品视频| 久久99最新地址| 99精品视频在线观看| 欧美三片在线视频观看| 精品国产乱码久久久久久闺蜜| 久久色.com| 亚洲第一福利视频在线| 国产高清无密码一区二区三区| 99久久亚洲一区二区三区青草| 欧洲亚洲国产日韩| 日本一区二区三级电影在线观看| 自拍偷拍亚洲综合| 毛片av一区二区三区| 91黄色小视频| 中文字幕第一区第二区| 奇米精品一区二区三区在线观看| 国产在线观看一区二区| 欧美精品电影在线播放| **欧美大码日韩| 高清国产午夜精品久久久久久| 欧美日韩亚洲综合| 亚洲美女屁股眼交| 成人黄色大片在线观看| 久久久精品国产99久久精品芒果| 日韩激情视频在线观看| 欧美日韩免费一区二区三区| 亚洲欧美乱综合| 欧美最猛性xxxxx直播| 一区二区欧美视频| 色伊人久久综合中文字幕| 国产精品久久久久9999吃药| 成人18视频日本| 亚洲免费av网站| 欧美精品一级二级三级| 三级在线观看一区二区| 777午夜精品免费视频| 日韩精品一二三四| 精品入口麻豆88视频| 成人久久视频在线观看| 亚洲人快播电影网| 这里只有精品视频在线观看|