|
為了在linux平臺下快速開發(fā)一款視頻聊天軟件,本文選取了anyChat SDK作為核心開發(fā),開發(fā)環(huán)境使用QT5.3,下面將講解我的開發(fā)過程。 一、 開發(fā)環(huán)境的搭建 1. 首先,虛擬機(jī)安裝linux系統(tǒng),我選取的是最新的Ubuntu14.04-32bit ; 2. 然后,到QT官網(wǎng),下載最新的linux版本QT5.3.2, 3. 最后,到AnyChat官網(wǎng),下載最新的linux版本的SDK,這里我們選取32bit 二、 軟件功能 在這里,我只需要如下幾個(gè)功能即可: 1. 能夠打開本地音視頻; 2. 能夠獲取在線用戶列表; 3. 能夠請求在線用戶音視頻,實(shí)現(xiàn)視頻聊天; 4. 能夠發(fā)送文字聊天。 三、 真正的開始 需求確定之后,我們就開始創(chuàng)建我們的工程啦! 1. 現(xiàn)在我們打開QT5軟件,創(chuàng)建一個(gè)新工程,首先就是布局我們的UI,然后我們給我們的UI寫上對象名字 2. 添加工程依賴性(包括anychat sdk依賴文件的添加) QT軟件配置頭文件和庫文件有兩種方法: 2.1 可以手動在.pro為后綴的文件里面進(jìn)行添加; 2.2 可以右鍵工程項(xiàng)目,然后添加相應(yīng)的文件和庫,此方法會自動修改.pro文件,如下左右兩圖所示(左圖為手動添加,右圖為添加后的pro文件,也可以按右圖修改pro文件): 其中INCLUDEPATH為頭文件包含路徑,這里添加anychat sdk目錄;LIBS為依賴庫文件,這里添加anychatcore動態(tài)庫;$$PWD表示pro文件當(dāng)前目錄;當(dāng)然也可以使用絕對路徑,直接填寫路徑和文件名即可,按左圖方法添加絕對正確。我的anychat sdk文件 3. 接下來我們需要編寫具體功能的實(shí)現(xiàn); 3.1 初始化 因?yàn)槲覀円褂胊nychat sdk,因此我們在程序初始化的時(shí)候?qū)dk初始化;SDK初始化參數(shù)設(shè)置,其中,對于視頻,我們設(shè)置為BRAC_FUNC_VIDEO_CBDATA,為視頻數(shù)據(jù)回調(diào)方式,后續(xù)需要我們實(shí)現(xiàn)視頻數(shù)據(jù)的處理,這里主要是渲染顯示;對于音頻,我們設(shè)置為BRAC_FUNC_AUDIO_AUTOPLAY,使用SDK自動播放模式,我們不用做任何處理。 設(shè)置SDK核心組件所在目錄(注:demo程序只是設(shè)置為當(dāng)前目錄,項(xiàng)目中需要設(shè)置為實(shí)際路徑) 根據(jù)BRAC_InitSDK的第二個(gè)參數(shù):dwFuncMode,來告訴SDK該如何處理相關(guān)的任務(wù) 在BRAC_InitSDK函數(shù)之后我們又調(diào)用了四個(gè)API接口,分別設(shè)置視頻回調(diào)、聲音回調(diào)(這里實(shí)際不用設(shè)置,我們采用自動播放模式)、系統(tǒng)消息回調(diào)、文字信息回調(diào)(文字聊天); 3.2 編寫登錄服務(wù)器接口 這里為了方便,服務(wù)器地址、端口號、用戶名、密碼都寫進(jìn)來了;當(dāng)我們登錄成功之后,就可以繼續(xù)往下啦。 3.3 進(jìn)入相應(yīng)的房間 RoomId_lineEdit就是我們的ui控件,我們在編輯控件填寫相應(yīng)的房號即可; 3.4 刷新在線用戶列表 我單獨(dú)寫了一個(gè)接口,實(shí)現(xiàn)由用戶進(jìn)入房間和離開房間時(shí)會刷新列表; 3.5 打開本地音視頻 收到消息:客戶端進(jìn)入房間 wParam (INT)表示所進(jìn)入房間的ID號,Param (INT)表示是否進(jìn)入房間:0成功進(jìn)入,否則 當(dāng)我們成功進(jìn)入房間時(shí),我們首先打開自己的音視頻,這里用到了兩個(gè)API,BRAC_UserCameraControl()和BRAC_UserSpeakControl(),分別打開音視頻; 這個(gè)函數(shù)有系統(tǒng)消息回調(diào)函數(shù)來調(diào)用,而系統(tǒng)消息回調(diào)函數(shù)我們在初始化的時(shí)候已經(jīng)設(shè)置了異步消息通知回調(diào)函數(shù)定義
信息發(fā)布:廣州名易軟件有限公司 http://m.jetlc.com
|