为了在linux平台下快速开发一款视频聊天软件,本文选取了anyChat SDK作为核心开发,开发环境使用QT5.3,下面将讲解我的开发过程。 一、 开发环境的搭建 1. 首先,虚拟机安装linux系统,我选取的是最新的Ubuntu14.04-32bit ; 2. 然后,到QT官网,下载最新的linux版本QT5.3.2, 3. 最后,到AnyChat官网,下载最新的linux版本的SDK,这里我们选取32bit 二、 软件功能 在这里,我只需要如下几个功能即可: 1. 能够打开本地音视频; 2. 能够获取在线用户列表; 3. 能够请求在线用户音视频,实现视频聊天; 4. 能够发送文字聊天。 三、 真正的开始 需求确定之后,我们就开始创建我们的工程啦! 1. 现在我们打开QT5软件,创建一个新工程,首先就是布局我们的UI,然后我们给我们的UI写上对象名字 2. 添加工程依赖性(包括anychat sdk依赖文件的添加) QT软件配置头文件和库文件有两种方法: 2.1 可以手动在.pro为后缀的文件里面进行添加; 2.2 可以右键工程项目,然后添加相应的文件和库,此方法会自动修改.pro文件,如下左右两图所示(左图为手动添加,右图为添加后的pro文件,也可以按右图修改pro文件): 其中INCLUDEPATH为头文件包含路径,这里添加anychat sdk目录;LIBS为依赖库文件,这里添加anychatcore动态库;$$PWD表示pro文件当前目录;当然也可以使用绝对路径,直接填写路径和文件名即可,按左图方法添加绝对正确。我的anychat sdk文件 3. 接下来我们需要编写具体功能的实现; 3.1 初始化 因为我们要使用anychat sdk,因此我们在程序初始化的时候对sdk初始化;SDK初始化参数设置,其中,对于视频,我们设置为BRAC_FUNC_VIDEO_CBDATA,为视频数据回调方式,后续需要我们实现视频数据的处理,这里主要是渲染显示;对于音频,我们设置为BRAC_FUNC_AUDIO_AUTOPLAY,使用SDK自动播放模式,我们不用做任何处理。 设置SDK核心组件所在目录(注:demo程序只是设置为当前目录,项目中需要设置为实际路径) 根据BRAC_InitSDK的第二个参数:dwFuncMode,来告诉SDK该如何处理相关的任务 在BRAC_InitSDK函数之后我们又调用了四个API接口,分别设置视频回调、声音回调(这里实际不用设置,我们采用自动播放模式)、系统消息回调、文字信息回调(文字聊天); 3.2 编写登录服务器接口 这里为了方便,服务器地址、端口号、用户名、密码都写进来了;当我们登录成功之后,就可以继续往下啦。 3.3 进入相应的房间 RoomId_lineEdit就是我们的ui控件,我们在编辑控件填写相应的房号即可; 3.4 刷新在线用户列表 我单独写了一个接口,实现由用户进入房间和离开房间时会刷新列表; 3.5 打开本地音视频 收到消息:客户端进入房间 wParam (INT)表示所进入房间的ID号,Param (INT)表示是否进入房间:0成功进入,否则 当我们成功进入房间时,我们首先打开自己的音视频,这里用到了两个API,BRAC_UserCameraControl()和BRAC_UserSpeakControl(),分别打开音视频; 这个函数有系统消息回调函数来调用,而系统消息回调函数我们在初始化的时候已经设置了异步消息通知回调函数定义
信息发布:广州名易软件有限公司 http://www.myidp.net
|