歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~android
本文做者,ericxwli,高級工程師,來自騰訊雲終端團隊微信
背景app
最近被老大分配了一個任務,他打開微信視頻聊天,發起多人視頻,指着功能界面說,「你看咱們的產品也是有多人會議的場景,咱們也加一個這樣的功能,也不用很複雜,就仿照微信或者QQ的多人視頻作一個出來,能實時視頻通話,這個應該也不難吧,給你一個禮拜搞定,能夠嗎?」 個人心裏在想這TM要涉及視頻採集、編碼、傳輸、解碼、視頻渲染,要有穩定的後臺音視頻傳輸,就光搭建後臺就要老命了,這尼瑪怎麼搞,臨走老大又補了一句,"哦,咱們這裏再加一個亮點,能夠在視頻界面發送文本消息,拓展下聊天功能",這時個人心裏已經崩潰。機器學習
要一個禮拜搞定,只能看看有沒有現成的解決方案,抱着試一試的態度google了下,沒想到還真有,騰訊雲、即構、網易雲、聲網等好幾家公司提供了完整了解決方案,本着騰訊畢竟大廠,並且裏面介紹他們的解決方案是基於QQ十多年的技術積累,穩定性和質量都有保障,因而直接試用了騰訊雲的解決方案,從接入過程和最後的效果看確實也沒有辜負個人指望,在尚未真正購買他們產品時,接入過程當中遇到的問題都能獲得積極的技術支持,並且讓我意想不到的是該方案還支持im功能,解決了老大最後的神補刀功能。佈局
本文根據本身接入過程,展開介紹下具體步驟,概括起來主要有四步:學習
進入官網ui
註冊本身的騰訊雲帳號,這個簡單沒什麼說的,騰訊雲也提供了QQ或者微信帳號直接登陸,省去註冊的麻煩。this
在接入騰訊雲實時音視頻前,咱們須要給本身的應用註冊一個惟一標識appid,方法以下:google
登陸騰訊雲,點擊進入控制檯,
在使用申請的appid接入實時音視頻服務後,產生通話時長,騰訊雲就會根據時長來計費,就像咱們打電話計費同樣,這裏騰訊雲提供了一些套餐,咱們能夠先使用最便宜的1元套餐,一個月1萬分鍾,通常也知足使用,若是以爲效果好,使用時長更多時咱們能夠再升級套餐包,購買入口
完成上述準備工做後,就是最關鍵的SDK接入,騰訊雲的SDK接入有專門的文檔介紹,接入很是方便,主要有下面關鍵幾個步驟:
騰訊實時音視頻解決方案將底層音視頻能力封裝成了一套SDK集合,包含了
SDK | 說明 |
---|---|
IMSDK | 提供 IM 即時通訊功能 |
AVSDK | 提供底層音視頻功能 |
ILiveSDK | 在 AVSDK 基礎上封裝而成,提供更簡單易用的音視頻功能接口 |
BeautySDK | 提供美顏預處理功能 |
咱們只須要將上次SDK下載而後導入到本身工程便可,詳細過程可閱讀官方接入文檔
每一個用戶都會有一個用戶標識,usersig則是對用戶標識的一種鑑權認證,是一個加密串,在登陸時會用到,生成步驟以下:
第一步,到騰訊雲的控制檯下載私鑰,也就是這個
**第二步,複製私鑰
下載下來是一個keys.zip,不用解壓縮,直接用winrar打開,右鍵private_key選【查看文件】,而後Ctrl+A,Ctrl+C複製**
**第三步,生成userSig
仍是在騰訊雲的控制檯,在左邊找到【開發輔助】,輸入用戶名,在私鑰這裏Ctrl+V,點擊【生成簽名】,而後就能夠在右邊把生成的userSig複製下來**
在程序啓動的地方調用接口:
// 初始化iLiveSDK ILiveSDK.getInstance().initSdk(this, Constants.SDKAPPID, Constants.ACCOUNTTYPE); // 初始化iLiveSDK房間管理模塊 ILiveRoomManager.getInstance().init(new ILiveRoomConfig() .setRoomMsgListener(this));
sdkAPPID就是剛纔申請的APPID,acountType在應用帳號信息裏
完成初始化後,使用userid和usersig進行登陸
ILiveLoginManager.getInstance().iLiveLogin(userId, userSig, callback);
佈局渲染用的控件:
```Java
<com.tencent.ilivesdk.view.AVRootView
android:id="@+id/av_root_view" android:layout_width="match_parent" android:layout_height="match_parent" />
並設置到SDK:
ILiveRoomManager.getInstance().initAvRootView(avRootView);
進入房間有兩種方式,房間不存在,調用建立房間接口
ILiveRoomManager.getInstance().createRoom(roomId, new ILiveRoomOption(), callback);
若是房間已經存在,則調用加入房間接口:
ILiveRoomManager.getInstance().createRoom(roomId, new ILiveRoomOption(), callback);
roomID便是房間的號碼,由本身的業務提供維護。
在進入房間後,對於本應用程序就是進入了會議室,會自動將進入會議室的每一個人員畫面渲染出來。
在老大最後補的一句裏,須要在視頻通話中加入文本消息聊天功能,老大說的倒很簡單,可是一個消息聊天單單消息通道的創建就是一件很是困難的事情,但在接入過程當中驚喜的發現騰訊實時音視頻自己就提供了這個功能,真實得來全不費工夫,並且開啓聊天功能很是簡單,只需在進房時將ILiveRoomOption的imSupport開啓,而後設置消息監聽便可收到消息,消息發送也是s調用一個藉口便可,代碼以下:
//消息發送 ILiveMessage message = new ILiveTextMessage(test); ILiveRoomManager.getInstance().sendGroupMessage(message, callback);
##效果展現
浪裏個浪,本來覺得任務是確定完成不了,沒想到不到一天的功夫就已經搭建出視頻通話功能。上述就是本文根據騰訊雲官方文檔指引,以Android爲例總結的從零搭建視頻通話服務的主要步驟,若有遇到其餘問題,歡迎留言。
問答
怎麼用小程序實現視頻通話?
相關閱讀
【小視頻】特效錄製插件強勢來襲
怒刷3000條短視頻後,我終於發現網紅300萬點讚的套路
即時通信App怎樣才能火?背後的技術原理,能夠從這5個角度切入
【每日課程推薦】機器學習實戰!快速入門在線廣告業務及CTR相應知識
此文已由做者受權騰訊雲+社區發佈,更多原文請點擊
搜索關注公衆號「雲加社區」,第一時間獲取技術乾貨,關注後回覆1024 送你一份技術課程大禮包!
海量技術實踐經驗,盡在雲加社區!