互動直播邏輯梳理

  • 最近開發(fā)了一個互動直播的項(xiàng)目。就其中的邏輯部分進(jìn)行一個梳理。項(xiàng)目地址和邏輯圖如下。
邏輯圖

非連麥

1.流程

  • 進(jìn)入聊天室NIMChatroom
  • 用拉流播放器加載拉流Url進(jìn)行播放(這種方式的播放延遲較高)。
  • 退出聊天室NIMChatroom

2.行為

  • 聊天/發(fā)送禮物等行為均通過[NIMSDK sharedSDK].chatroomManager在在當(dāng)前NIMChatroom發(fā)送與監(jiān)聽系統(tǒng)/自定義消息。
  • 直播的狀態(tài)變更(如直播結(jié)束)。直播間的狀態(tài)由主播進(jìn)行維護(hù)。非主播則通過[NIMSDK sharedSDK].chatroomManager對直播間狀態(tài)進(jìn)行監(jiān)聽與更新。

連麥

  1. 流程
    • 主播一開始直播需創(chuàng)建并加入NIMNetCallMeeting
    • 連麥者在申請連麥并被允許后進(jìn)入NIMNetCallMeeting
    • 在連麥情況下不需要拉流Url進(jìn)行播放。僅需展示自己的本地攝像頭畫面[NIMAVChatSDK sharedSDK].netCallManager- (void)onRemoteYUVReady:(NSData *)yuvData width:(NSUInteger)width height:(NSUInteger)height from:(NSString *)user方法獲得的數(shù)據(jù)
  2. 行為
    • 用戶的進(jìn)入與退出通過監(jiān)聽[NIMAVChatSDK sharedSDK].netCallManageronUserJoinedonUserLeft方法進(jìn)行

總結(jié)

  • 這里只講了大致的流程許多細(xì)節(jié)并未講清。整個邏輯梳理的難點(diǎn)在于對于NIMNetCallMeetingNIMChatroom兩者的理解。
  • 其實(shí)只需記住直播間里面的所有角色都在NIMChatroom中,而主播連麥者同時在NIMNetCallMeetingNIMChatroom中。
  • 想確定一個行為是通過那個渠道進(jìn)行的。
    1. 判斷受眾,若這個行為的參與者不僅僅包涵主播與連麥者。(如監(jiān)聽直播間的狀態(tài)普通觀眾也要監(jiān)聽)則該行為走的是NIMChatroom
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 2016 年是直播元年,也是這個行業(yè)最輝煌的一年,不少平臺拿到了B輪,甚至是C輪融資。而直播行業(yè)的火爆,直接引來了...
    方弟閱讀 50,302評論 7 126
  • 全局創(chuàng)建context? 創(chuàng)建一個全局的context,然后退出SDK層房間時不銷毀只是停止context。 SD...
    Carden閱讀 1,855評論 0 2
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,733評論 25 709
  • 今天開始,就正式開營了。內(nèi)心是糾結(jié)的,怕年底了,工作太忙,顧不過來,會辜負(fù)了這片熱情,壓力油然而生。 凌晨4點(diǎn)半,...
    piano潘潘閱讀 435評論 4 2
  • 在這個撕來撕去的雙子座滿月,突發(fā)靈感,我重新看待滿月生的娃~~滿月也即太陽月亮形成對宮,在行星形成的相位中,180...
    團(tuán)的花園閱讀 270評論 0 0

友情鏈接更多精彩內(nèi)容