腾讯云互动直播SDK集成综述
SDK構成
互動直播SDK由兩部分構成,IMSDK和AVSDK
其中IMSDK為云通信SDK,為AVSDK提供賬號登錄、信令通道、IM彈幕消息、日志模塊、日志上報等功能
AVSDK提供攝像頭采集、編碼、解碼、美顏等一系列功能(下圖為AVSDK整體框架)
登錄交互邏輯
騰訊云互動直播提供兩種賬號對接方式
-
托管模式
由騰訊提供賬號的注冊、密碼存儲及校驗
-
獨立模式
由第三方業務自己保存賬號體系,使用互動直播時,騰訊對第三方賬號體系進行一定程度校驗,是目前應用最廣泛的一種驗證方式。
本文著重講解獨立模式使用方法
詳細內容參考賬號登錄集成說明
1.App登錄業務服務器,做用戶身份業務方鑒權
2.業務服務器驗證成功后,根據用戶身份,使用私鑰加密用戶身份信息后生成UserSig返回給客戶端
3.將UserSig傳給IMSDK的login接口,完成騰訊云服務器登錄
創建房間交互邏輯
互動直播采用房間的概念進行音視頻流交換,即觀看者與主播必須同一個房間內才能完成通信。但互動直播不進行房間管理操作,相關的房間號分配、房間成員列表、房間的觀眾主播進出都可由業務來管理(可借助IMSDK實現該功能,詳情請見房間狀態通知)
創建房間交互流程如下:
1.主播向業務服務器請求創建房間
2.業務服務器分配房間號
3.主播使用分配的房間號調用AVSDK創建房間接口完成創建
4.通知業務服務器創建房間完成
觀眾進入房間交互邏輯
在主播完成房間創建后,業務直播平臺已經有當前正在直播的房間列表。觀眾在登陸后可以看到該房間列表點擊后進入房間,可發IM消息或者業務邏輯通知給其他已經在看的觀眾和主播。詳細流程圖如下:
注意:AVSDK不提供觀眾進入直播間通知,且不維護房間成員數及列表,可使用IMSDK實現或業務自行實現(見示意圖虛線部分)
觀眾主播IM消息交互邏輯
觀眾正在欣賞主播表演同時,可以和主播進行IM互動,進行聊天、送花和送禮物等其它操作
當觀眾需要進行送花、送禮物等計費相關操作時,有兩種方案可供選擇
- 觀眾送花,由互動直播云回調業務后臺,進行扣費
- 觀眾送花,由App上行請求至直播平臺,完成扣費操作后,直播平臺通過IMSDK REST API接口發送該消息
當直播間內成員較多時,較大消息量可能會引起主播性能問題,業務側需要優化渲染策略,同時互動直播云(IMSDK)可控制消息頻率
觀眾退出房間交互邏輯
觀眾退出房間時,也需要通知給主播和其它的觀眾,相關流程可參考觀眾進入房間交互邏輯
主播退出房間交互邏輯
當主播退出房間時,需做以下幾件事情
- 通知業務直播平臺,直播間銷毀
- 通知其它的觀眾,主播已退出
- 顯示直播結束頁(展示直播時長、直播熱度等)
流程圖如下:
視頻連麥
連麥功能是騰訊云互動直播SDK在直播場景下推出的特色功能,可供主播和某一(多)觀眾進行視頻連線,相互交流,其它的觀眾可看到主播和被邀請的觀眾的音視頻畫面(映客、聚美優品等App均實現了該功能)
可下載隨心播進行體驗,并可參考隨心播封裝代碼(Android下載、iOS下載)
上麥的實現流程如下:
注意
- 邀請A上麥需要發點多點的消息(可使用云通信IMSDK的單聊消息,用CustomElem實現
- 一定要在A完成上麥(開麥克風、攝像頭,上傳本地畫面)完成后,再發送上麥廣播通知
- 上麥廣播通知可使用云通信的群消息(CustomElem)實現
下麥的實現流程如下:
注意
- 主播和觀眾A下麥都需要考慮(代碼中要做好保護)
- 下麥的廣播通知和下麥者關閉本地視頻上傳可同時進行(但建議先發出下麥通知,再關閉本地畫面)
推流RTMP/HLS(H5或網頁端觀看)
互動直播SDK可直接由后臺將私有協議轉碼為RTMP和HLS,業務可以將RTMP和HLS進行應用間分享,如分享到微信、QQ、朋友圈、QZone和其它應用內
建議使用
推流的TIMAvManager.StreamParam參數可直接設置進行錄制,不需要再調用錄制API(推流結束錄制也結束,生命周期一致)
注意
- 互動直播推流使用了直播的cdn,需要業務申請直播權限(重要)
- 直播有頻道數限制,請業務提前申請足夠的頻道數
- 因各種客戶端異常導致沒有正常銷毀頻道,開發者需從騰訊云控制臺上手動關閉頻道,否則頻道會一直存在(占用總頻道數)
文檔參見旁路直播開發
錄制主播視頻(回放)
互動直播提供了音視頻錄制API,可由互動直播后臺將主播的音視頻錄制下來,并且存儲到點播服務器上,待轉碼完成以后,就可以實現回放、分發等其他的功能
注意
- 需要開通點播服務
- 錄制僅限于主播(第一個進入房間并且有音視頻流的人)
- 錄制會以60分鐘為間隔生成MP4文件
- 轉碼需要時間
- 需要顯式的調用停止錄制API
更多文檔參見:錄制功能開發
鑒黃
待補充
開發注意事項(必讀)
- 觀眾人數過多時,消息量也會隨之增多,需注意主播端性能,常見因渲染代碼過多導致CPU飆升卡頓
- 主播可能因為某種原因(CRASH、斷網等)掉線,業務直播平臺需增加主播心跳,實現直播列表的實時更新
- 互動直播不提供房間成員管理等操作,需業務直播平臺自行實現,或采用IMSDK方案
總結
以上是生活随笔為你收集整理的腾讯云互动直播SDK集成综述的全部內容,希望文章能夠幫你解決所遇到的問題。