毕业设计(论文)-动态语音视频传输技术的研究及实现.doc

上传人:李司机 文档编号:7026275 上传时间:2024-04-18 格式:DOC 页数:29 大小:1.69MB
返回 下载 相关 举报
毕业设计(论文)-动态语音视频传输技术的研究及实现.doc_第1页
第1页 / 共29页
毕业设计(论文)-动态语音视频传输技术的研究及实现.doc_第2页
第2页 / 共29页
毕业设计(论文)-动态语音视频传输技术的研究及实现.doc_第3页
第3页 / 共29页
毕业设计(论文)-动态语音视频传输技术的研究及实现.doc_第4页
第4页 / 共29页
毕业设计(论文)-动态语音视频传输技术的研究及实现.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《毕业设计(论文)-动态语音视频传输技术的研究及实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-动态语音视频传输技术的研究及实现.doc(29页珍藏版)》请在三一办公上搜索。

1、本科毕业论文动态语音视频传输技术的研究及实现学生姓名: 指导教师: 所在院系: 计算机科学与技术 所学专业年级: 年 月目 录前言11导论21.1动态音视频传输技术现状21.1.1多媒体和网络多媒体21.1.2动态音视频现状21.2论文主要内容和意义31.3开发环境32NetMeeting SDK基础知识42.1NetMeeting SDK简介42.1.1NetMeeting SDK组件关系42.1.2NetMeeting SDK对象模型42.2H.32352.2.1H.323简介52.2.2H.323终端的组成53视频语音聊天系统设计73.1软件的体系结构73.2音视频信号的采集、压缩和传输

2、74视频语音聊天系统的实现84.1代码简介84.2实时通信客户端接口84.3通信类型选择84.4初始化一个会话94.5处理实时通信事件114.6创建一个通信会话134.7处理实时流会话事件144.7.1媒体事件144.7.2强度事件154.7.3会话状态改变事件164.7.4客户事件194.8加入会话列表事件204.9结束会话205程序界面215.1主界面215.2视频音频强度调节215.3聊天窗口界面226结 语24致 谢25参考文献26动态语音视频传输技术的研究及实现摘 要本文以动态语音视频传输技术为研究对象,结合网络IP的知识,综合运用软件工程、面向对象程序设计等方法,在对我国现有的通信

3、设施深入分析的基础上,吸收了国际组织和发达国家对于动态语音视频传输技术的研究成果,设计了一个基于IP的视频语音聊天系统,利用视频技术和IP数据通信技术通过IP网络在两地之间建立可视通信。通信双方利用PC终端、摄像头和话筒就能实时地看到对方及对方所在的环境,也能听到对方的声音。在效果上可以代替面对面交谈。 本文简要介绍了语音视频会议系统的软件体系结构及NetMeeting SDK的编程接口,详细介绍了利用NetMeeting SDK提供的COM组件构建桌面视频会议系统的过程。系统采用VC+60和COM技术开发,大大缩短了系统的开发时间,同时也提高了应用系统的兼容性和强壮性。关键词:语音视频聊天系

4、统;NetMeeting SDK;COM组件AbstractIn this paper, a dynamic voice and video transmission technology for the study, IP network with the knowledge, the integrated use of software engineering, object-oriented programming methods, in our existing communications facilities on the basis of in-depth analysis, t

5、he absorption of the international organizations and developed The dynamic countries of voice, video transmission technology research, design an IP-based voice and video chat system, using video technology and IP data communications technology merits and demerits of IP network to be established betw

6、een the two visual communications. Both sides use PC communication terminals, cameras and microphones will be able to see each other in real time and the other side of the environment, but also to hear each others voices. In effect it can replace face-to-face conversations.This paper introduces a vo

7、ice and video conferencing system software architecture and NetMeeting SDK programming interface, detailed introduced to the use of NetMeeting SDK provided by the COM component Construction desktop video conferencing system process. System uses VC + + 6.0 and COM technology development, greatly redu

8、cing the system development time, while also helping to enhance the compatibility of applications and robustness.Key words: voice and video chat system; NetMeeting SDK; COM component25前言随着多媒体计算机技术和通信技术的发展,人们已不满足简单的话音和文字通信,希望集语音和图像于一体的多媒体通信。这是继电报,电话,传真,及电子邮件之后,又一新的通信手段。通过对动态语音视频传输技术的研究及实现我们就可以实现这一新的通

9、信业务即视频语音聊天系统。视频语音聊天系统就是这种新型的通信手段之一,它可以点对点通信,也可以多点对多点通信。它在同一传输线路上承载了多种媒体信息即视频、语音和数据等,实现实时交互通信,同时也可以把通信对方所在的环境,对方的容貌直接展现出来,满足人们对通信业务的需要。与此同时通过对动态语音视频传输技术的研究,我将学到与动态语音视频相关的系统知识,更加深入的了解到语音视频的存储、传送、播放的技术。动态语音视频传输技术的研究及实现,其开发主要包括对视频、音频的采集及处理、网络上的传输。经过分析,我决定使用微软公司的Visual C+开发工具 ,利用Microsoft NetMeeting SDK提

10、供的COM组件实现一个视频语音聊天系统。Visual C+ 可以提供给用户友好的使用界面,而NetMeeting把所有底层技术都封装在它的COM组件里,我们可以直接利用Microsoft提供的库函数实现系统地功能,因而大大缩短了系统的开发时间,同时也提高了最终应用系统的兼容性和强壮性。1 导论1.1 动态音视频传输技术现状1.1.1 多媒体和网络多媒体近年来,多媒体以其震撼的音效、细腻的画面和逼真的动化效果引起了人们的广泛关注。一般来看,“多”是多媒体的多种媒体表现形式、多种感官作用、多种设备介入、多学科交汇和多领域应用。多媒体技术把文字、音频、视频、图形、动画等多种媒体信息通过计算机进行数字

11、化采集、获取、编辑等加工处理,再以单独或合成的方式表现出来。多媒体技术的集成性、交互性、智能性以及可扩展性使其迅速被无数人接受并使用。多媒体的出现将庞大的网络世界变得图文并貌、丰富多彩。把多媒体的概念与网络相结合,目的是为了在网络节点的主页里,能呈现文字、声音、图像等,也就是在网络上展示媒体的魅力,这是未来网络发展必然的趋势。多媒体网络需要传输大量的媒体信息,而所传输的信息对网络说是个不相同的。语音对延时、抖动比较敏感,对误码相对不敏感;数据对实时性要求不高,但要有严格的误码校错保证;图像实时性要求也不高,但要求更高的带宽。由此也可以看出,为了符合多媒体业务的要求,对多媒体网络也提出了如下的要

12、求: (1)业务等级保证,也就是常说的QoS(Quality of Service):多媒体网络应能根据不同的业务提供不同的质量等级(如带宽、延时和抖动)。 (2)高带宽:随着图像、视频等数据量较大的媒体数据,要求网络能提供足够的带宽。(3)可靠性保证:作为向用户提供服务的运营网络,必须提供充分的网络可靠性,以满足各种业务不中断的要求。(4)实时性,这是多媒体与传统数据网络的本质区别:多媒体通信网应能满足各种实时业务(如语音、视频)。1.1.2 动态音视频现状多媒体技术的快速发展和广泛应用,使我们的生活变得丰富多彩。多媒体技术与网络技术的结合,更加迅速扩展了其应用领域和发展空间。Microso

13、ft NetMeeting是微软家族中的一个网络通信服务产品。有了 NetMeeting,您可以参加网络会议、进行协同工作以及通过Internet或企业Intranet共享信息。 NetMeeting的基本原理是:在两个IP之间建立起语音、视频和数字会议,获得一个丰富多彩的实时协作环境。双方或者多方可以交换文件,在白板上交流思想,进行讨论或者共享应用程序和桌面。 NetMeeting支持ITU的H.323标准和T.120标准,以及IETF 的LDAP目录服务标准,有关这些标准的细节请参考相关资料。在Windows 98第一版中捆绑了NetMeeting 2.0,在Windows 98第二版和W

14、indows 2000中捆绑了NetMeeting 3.0。 NetMeeting本身是基于Microsoft COM技术设计的,它提供了一整套接口函数,使我们可以在NetMeeting的基础上进行二次开发。有了NetMeeting,我们可以跳过网络通信的底层技术细节,集中精力在软件的功能设计上,开发出满足自己需求的网络通信产品。微软的很多产品都具有二次开发的能力,这要归功于COM的威力,它可以在二进制级进行代码重用,为现代软件的开发带来了极大的革新。1.2 论文主要内容和意义论文首先介绍微软公司开发的NetMeeting SDK,通过深入了解NetMeeting的结构及其组建学习动态视频语音

15、技术。论文以视频语音聊天系统的实现为例,阐述基于NetMeeting技术的软件网络视频聊天的原理以及具体实现方法。此题目有助于了解当前流行多媒体技术与网络通信的发展趋势,理解NetMeeting应用架构及工作原理,并结合NetMeeting的多媒体技术与网络技术,开发出可以进行双方音视频通信的简易应用程序。同时提高自学能力,培养自己独立发现和解决实际问题的能力,并借此巩固已学专业内容,提高实际动手能力,检测所学课程的效果和成绩。1.3 开发环境开发环境是在windows xp系统下,安装微软公司的 Visual C+ 6.0开发工具,利用NetMeeting SDK中的库函数开发的视频聊天系统

16、。Windows xp操作系统是我们使用最广泛的操作系统之一,在windows xp下开发,可以省去由于对操作系统不熟悉而遇到的问题。Visual C+ 6.0开发工具是一款微软公司开发的可视化编程工具,拥有友好的界面,强大的开发能力,可以使开发更加顺利。而NetMeeting把所有底层技术都封装在它的COM组件里,我们可以直接利用Microsoft提供的库函数实现系统地功能,因而大大缩短了系统的开发时间,同时也提高了最终应用系统的兼容性和强壮性。2 NetMeeting SDK基础知识2.1 NetMeeting SDK简介2.1.1 NetMeeting SDK组件关系图1描述了NetMe

17、eting的软件结构。从图中可以看到,我们只要通过调用NetMeeting的COM API函数,就可以管理一个网络会议,完成所有 NetMeeting的功能,而大量的底层技术细节都由NetMeeting自己处理了。图1 NetMeeting的软件结构2.1.2 NetMeeting SDK对象模型NetMeeting SDK包括一个ActiveX控件和一组COM对象。其中的ActiveX控件只能实现很简单的功能,可以在Web页面上使用。如果想开发比较复杂的网络会议软件,还需要直接调用其COM API。图2显示了NetMeeting的COM对象模型。图2 NetMeeting的COM对象模型2.

18、2 H.3232.2.1 H.323简介为了能在不保证QoS的分组交换网络上展开多媒体会议,由ITU的第15研究组SG-15于1996年通过H.323建议的第一版,并在1998年提出了H.323的第二版。H.323制定了无QoS(服务质量)保证的分组网络PBN(packet Based Networks)上的多媒体通信系统标准,这些分组网络主宰了当今的桌面网络系统,包括基于TCP/IP、IPX分组交换的以太网、快速以太网、令牌网、FDDI技术。因此,H.323标准为LAN、WAN、Internet、因特网上的多媒体通信应用提供了技术基础和保障。H.323是ITU多媒体通信系列标准H.32x的一

19、部份,该系列标准使得在现有通信网络上进行视频会议成为可能,其中,H.320是在N-ISDN上进行多媒体通信的标准:H.321是在B-ISDN上进行多媒体通信的标准:H.322是在有服务质量保证的LAN上进行多媒体通信的标准:H.324是在GSTN和无线网络上进行多媒体通信的标准。H.323为现有的分组网络PBN(如IP网络)提供多媒体通信标准。若和其它的IP技术如IETF的资源预留协议RSVP相结合,就可以实现IP网络的多媒体通信。基于IP的LAN正变得越来越强大,如IP over SDH/SONET、IP over ATM技术正在快速发展以及LAN 宽带正在不断的提高。由于能提供设备与设备、

20、应用与应用、供应商与供应商之间的互操作能力,因此,H.323能够保证所有H.323兼容设备的互操作性。更高速率的处理器、日益增强的图形器件和强大的多媒体加速芯片使提PC成为一个越来越强大的多媒体平台。H.323可提供PBN与别的网络之间进行多媒体通信的互连互通标准。许多计算机、网络通信公司,如Inter、Microsoft和Netscape都支持H.323标准。H.323标准包括在无QoS保证的分组网络中进行多媒体通信所需的技术要求。这些分组网络包括LAN、WAN、Internet/因特网以及使用PPP等分组协议通过GSTN或ISDN的拨号连接或点对点连接。从整体上来说,H.323是一个框架性

21、建设,它涉及到终端设备、视频、音频和数据传输、通信控制、网络接口方面的内容,还包括了组成多点会议的多点控制单元(MCU)、多点控制器(MC)、多点处理器(MP)、网关以及关守等设备。它的基本组成单元是域,在H.323系统中,所谓域是指一个由关守管理的网关、多点控制单元(MCU)、多点控制器(MC)、多点处理器(MP)和所有终端组成的集合。一个域最少包含一个终端,而且必须有且只有一个关守。H.323系统中各个逻辑组成部份称为H.323的实体,其种类有:终端、网关、多点控制单元(MCU)、多点控制器(MC)、多点处理器(MP)。其中终端、网关、多点控制单元(MCU)是H.323中的终端设备,是网络

22、中的逻辑单元。终端设备是可呼叫的和被呼叫的,而有些实体是不通被呼叫的,如关守。H.323包括了H.323终端与其它终端之间的、通过不同网络的、端到端的连接。2.2.2 H.323终端的组成图3 H.323终端组成框图H.323为基于网络的通信系统定义了四个主要的组件:(Terminal)、网关(Gageway)、关守(Gagekeeper)、多点控制单元(MCU)。终端是分组网络中能提供实时、双向通信的节点设备,也是一种终端用户设备,可以和网关、多点接入控制单元通信。所有终端都必须支持语音通信,视频和数据通信可选。H.323规定了不同的音频、视频或数据终端协同工作所需的操作模式。它将是下一代因

23、特网电话、音频会议终端和视频会议技术的主要标准。图3所示为H.323终端的组成框图,在发端,从输入设备获取的视频和音频信号,经编码器压缩后,按照一定格式打包,通过网络发送出去,在收端,来自网络的数据包首先被解包,获得的视频、音频压缩数据经解码后送入输出设备,用户数据和控制数据也得到了相应的处理。它所包含的各个功能单元及其标准备或协议分别是:视频编解码(H.263/ H.261):完成对视频码流的冗余压缩编码。音频编解码(H.723.1等):完成语音信号的编解码,并在接收端可选择地加入缓冲延迟以保证语音的连续性。所采用的标准为ITU-T的H.723.1,它提供5.3kbit/s和6.3kbit/

24、s两种码率,采用线性预测综合分析编码方法,分别使用代数码本激励线性预测和多脉冲最大似然量化,从而各自获得编码复杂度和质量的优化。各种数据应用:包括电子白板、静止图像传输、文件交换、数据库共存、数据会议、运程设备控制等,可用的标准为T.120、T.84、T.434等。控制单元(H.245):提供端到端信令,以保证H.323终端的正常通信。所采用的协议为H.245(多媒体通信控制协议),它定义了请求、应答、信令和指示四种信息,通过各种终端间进行通信能力协商,打开/关闭逻辑信道,发送命令或指示等操作,完成对通信的控制。H.225层:将视频、音频、控制等数据格式化并发送,同时从网络接收数据。另外,还负

25、责处理一些诸如逻辑分帧、加序列号、错误检测等功能。3 视频语音聊天系统设计3.1 软件的体系结构在软件功能结构上,视频会议软件系统分为4个层次,具体结构模型如图4所示。系统控制视频I/O设备H.323音频/视频数据处理H.245通信控制H.263视频处理G.723.1音频处理音频I/O设备RTP/RTCP(H.255.0)实时数据传输音频/视频流传输Internet/intranet/TCP图4 视频语音聊天系统软件体系结构系统中主要软件模块功能如下:(1)视频模块。为双方提供实时的视频传输机制,使双方的形象都可以实时显示在操作界面上,主要完成视频数据的采集、编码、发送、接收、解码、回放等功能

26、,图像编码标准采用H263。(2)音频模块。为双方提供实时的对话机制,使双方都能听到对方的谈话。主要完成音频数据的采集、编码、发送、接收、解码、混音、回放等功能,采用G7231标准(53kbps或63kbps速率)进行编解码。(3)RTPRTCP模块。使用H-2250标准完成音视频流的同步。以及回放的次序性和连贯性。(4)通信控制模块。使用H245标准建立音视频通信。3.2 音视频信号的采集、压缩和传输视频语音聊天系统的实现包括音视频信号采集、压缩、传输、解压缩、播放等步骤。系统以普通的PC机为终端,用话筒和视频摄像头实现音视频信号的采集,以纯软件方式完成音视频信号的压缩、解压、存储和播放。声

27、音、视频的实时性比可靠性更重要,因此,采用实时传输协议RTC进行传输。压缩后的视频数据封装到肿包中通过UDP协议传到接收端,接收端实时解码回放。4 视频语音聊天系统的实现下面给出一个使用微软实时通信(RTC)创建音频与视频会议的点对点聊天对话及整合音频视频调节向导的接口。4.1 代码简介以实时通信应用程序接口来使用丰富的通信是一个简单的过程。(1) 增强的客户端应用程序决定了客户端通信平台的功能。(2) 应用程序在通信会话中选择使用偏爱的音频与视频设备。(3) 应用程序初始化一个通信会话。(4) 实时通信层协调数据的获得、压缩和传输,应用程序传输数据,所使用的音频与视频编解码器是根据通信的两者

28、之间的连接质量决定的。4.2 实时通信客户端接口需要的头文件 rtccore.h代码使用CLSID_RTCClient(GUID=7a42ea29-a2b7-40c4-b091-f6f024aa89be)的CoCreateInstance()的实时通信客户端接口。一旦这个接口可用,Initialize()这个COM对象来判断这个平台的通信会话性能。/初始RTC COM 对象Hr=CoCreateInstance (CLSID_RTCClient,NULL,CLSCTX_INPROC_SERVER,IID_IRTCCLient,(LPVOID *)&m_pClient);/初始化客户端口Hr =

29、 m_pClient-Initialize();4.3 通信类型选择选择偏爱的通信和相关的设备类型。缺省的情况是使用所有的通信类型。如果通信会话的参与者能够通信会话的参与者能够共享应用程序、产地即时信息、声音的和视频,这些性能都能够自动的可用。如果一个参与者不支持特定的通信类型,那么对于所有的会话参与者来说,这种通信类型也是不可用的。M_pClient-SetPreferredMediaTypes ( RTCMT_ALL,VARIANT_TRUE );会话参与者的平台性能和可用带宽决定了使用何种音频与视频编解码器。视频Windows 实时通信客户端在1/4GIF图像格式(176*144)分辨率

30、下支持H.261和H.263编解码器。这些可变比特率编解码器发送介于6-125Kbit/s的视频数据。使用IRTCClient接口方法put_MaxBitRate和put_TemporalSpatialTradeOff可能影响目标的视频转换的空间时间分辨率。音频Windows实时通信客户端支持许多种音频编解码器。音频编解码器是基于终端的连接质量而定的。下表1列出了支持的音频编解码器。表1 系统支持的音频编解码器编解码器采样率(kHz)比特率(Kbit/s)帧尺寸(ms)G.71186420G.722.1162420G.72386.430,60,90GSM81320DVI483220SIREN1

31、61620,40选择了通信类型和相关的设备后,就可以调整这些通信设备了。实时通信应用程序接口提供了一个向导,以便更好的调节摄像头和麦克风。使用RTCClient接口的InvokeTuningWizard()方法来调节它们的设置。void CAVDConfDlg:OnTuning()If(m_pClient)M_pClient-InvokeTuningWizard(OAHWND)m_hWnd);4.4 初始化一个会话在应用程序能够与其它连接之前,它必须能够处理在会话期间实时通信 fire off 的事件。在PC到PC的通信中,应用程序捕获音量强度、媒体、客户端消息和会话状态改变等事件。下面代码是

32、创建一个事件过滤器来捕获特定的RTC事件类型。lEventMask设置了应用程序感兴趣的一组事件。CRTCEvents类为附属的客户端发送事件。RTCEvents对象在应用程序和IRTCEventNotification接口之间创建一个接口。所有的实时通信事件将由RTCEvents类处理。/初始化实时通信客户端HRESULT CAVDConfDlg:InitRTCClient()/创建RTC客户端HRESULT hr;m_pClient = NULL;m_pEvents = NULL;/当前线程中初始化COM库hr = CoInitialize(NULL);if (FAILED(hr)retu

33、rn hr;/初始RTC COM对象hr = CoCreateInstance (CLSID_RTCClient, NULL,CLSCTX_INPROC_SERVER, IID_IRTCClient,(LPVOID *)&m_pClient);if (FAILED(hr)return hr;/初始化客户端接口hr = m_pClient-Initialize();if (FAILED(hr)SAFE_RELEASE(m_pClient);return hr;/设置选择的媒体类型/使用RTCMT_ALL参数将会初始化视频、音频和T.120层m_pClient-SetPreferredMediaT

34、ypes ( RTCMT_ALL, VARIANT_TRUE );/设置事件过滤器来监听RTC事件long lEventMask = RTCEF_SESSION_STATE_CHANGE | RTCEF_MEDIA | RTCEF_INTENSITY | RTCEF_CLIENT;/初始化本程序需要函数的事件过滤器hr = m_pClient-put_EventFilter( lEventMask ); if ( FAILED(hr) ) SAFE_RELEASE(m_pClient); return hr; /创建事件接受对象 m_pEvents = new CRTCEvents; if (

35、!m_pEvents) SAFE_RELEASE(m_pClient); return hr; /初始化事件处理器 hr = m_pEvents-Advise( m_pClient, m_hWnd ); if ( FAILED(hr) ) SAFE_RELEASE(m_pClient); return hr; /设置为RTC客户端模式/使用RTCLM_BOTH参数打开标注的SIP端口5060,同时打开一个动态的端口 hr = m_pClient-put_ListenForIncomingSessions(RTCLM_BOTH); if ( FAILED(hr) ) SAFE_RELEASE(m

36、_pClient); return hr; /初始化IDLE的状态自动机if (m_AVDlg)m_AVDlg.SetState (RTCSS_IDLE);return S_OK;LRESULT CAVDConfDlg:WindowProc(UINT message, WPARAM wParam, LPARAM lParam) switch (message)case WM_RTC_EVENT:OnRTCEvent (message, wParam, lParam);break;return CDialog:WindowProc(message, wParam, lParam);4.5 处理实

37、时通信事件一旦事件处理器被IRTCEventNotification接收端注册,那么接收和处理实时通信事件就非常简单。当实时通信事件被样例应用程序接收的时候,应用程序的事件处理程序发送一个消息到这个应用程序的消息处理程序。OnRTCEvent()函数处理所有的由应用程序接收的所有的不同类型的事件。/对实时会话的事件处理HRESULT CAVDConfDlg:OnRTCEvent(UINT message, WPARAM wParam, LPARAM lParam) IDispatch * pDisp = (IDispatch *)lParam; RTC_EVENT enEvent = (RTC

38、_EVENT)wParam; HRESULT hr; /根据RTC_EVENT的,查阅例行的时间接口并且调用一个helper方法来处理事件 switch ( wParam ) case RTCE_SESSION_STATE_CHANGE:/实时会话状态改变事件 IRTCSessionStateChangeEvent * pEvent = NULL; hr = pDisp-QueryInterface( IID_IRTCSessionStateChangeEvent, (void *)&pEvent ); if (SUCCEEDED(hr) OnRTCSessionStateChangeEven

39、t(pEvent);/调用实时会话状态改变处理函数 SAFE_RELEASE(pEvent); break; case RTCE_MEDIA:/实时会话媒体事件 IRTCMediaEvent * pEvent = NULL; hr = pDisp-QueryInterface( IID_IRTCMediaEvent, (void *)&pEvent ); if (SUCCEEDED(hr) OnRTCMediaEvent(pEvent);/调用实时会话媒体事件处理函数 SAFE_RELEASE(pEvent); break; case RTCE_INTENSITY:/实时会话强度事件 IRTC

40、IntensityEvent * pEvent = NULL; hr = pDisp-QueryInterface( IID_IRTCIntensityEvent, (void *)&pEvent ); if (SUCCEEDED(hr) OnRTCIntensityEvent(pEvent);/调用实时会话强度事件处理函数 SAFE_RELEASE(pEvent); break; case RTCE_CLIENT:/实时会话客户事件 IRTCClientEvent * pEvent = NULL; hr = pDisp-QueryInterface( IID_IRTCClientEvent,

41、 (void *)&pEvent ); if (SUCCEEDED(hr) OnRTCClientEvent(pEvent);/调用实时会话客户事件处理函数 SAFE_RELEASE(pEvent); break; SAFE_RELEASE(pDisp); return S_OK;4.6 创建一个通信会话在使用实时通信之前,必须创建和初始化一个通信会话。然后就可以输入参与者的IP地址来开始通话了。也可以通过输入一个电子邮件地址或者一个电话号码来激活一个通信会话。然而,这个函数而要SIP注册服务器。实时通信不支持多个视频会议会话同时运行,所以这个应用程序在初始化一个新的会话之前,必须首先检验有没

42、有运行视频会议会话。在第一个发行版本中,Windows实时通信客户端只支持多个电话到电话的通信会话,而不支持多个音频与视频或者只有音频的会议。为了与另一台计算机通话,需要识别实时通信会话类型并创建一个使用IRTCSSession接口的会话类型。/创建一个视频会话HRESULT CAVDConfDlg:MakeCall(RTC_SESSION_TYPE enType, BSTR bstrURI) HRESULT hr; /是否已经建立了AV会话?每次我们只能允许一个存在if (m_AVDlg) & (m_AVDlg.GetState () != RTCSS_IDLE) MessageBoxW (m_hWnd, LAn audio/video call is in progress!, NULL, MB_OK ); return S_FALSE; /创建和客户端会话 IRTCSession * pSession = NULL; hr = m_pClient-CreateSession(enType, NULL, NULL, 0, &pSession);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号