互动直播逻辑梳理

  • 最近开发了一个互动直播的项目。就其中的逻辑部分进行一个梳理。项目地址和逻辑图如下。
逻辑图

非连麦

1.流程

  • 进入聊天室NIMChatroom
  • 用拉流播放器加载拉流Url进行播放(这种方式的播放延迟较高)。
  • 退出聊天室NIMChatroom

2.行为

  • 聊天/发送礼物等行为均通过[NIMSDK sharedSDK].chatroomManager在在当前NIMChatroom发送与监听系统/自定义消息。
  • 直播的状态变更(如直播结束)。直播间的状态由主播进行维护。非主播则通过[NIMSDK sharedSDK].chatroomManager对直播间状态进行监听与更新。

连麦

  1. 流程
    • 主播一开始直播需创建并加入NIMNetCallMeeting
    • 连麦者在申请连麦并被允许后进入NIMNetCallMeeting
    • 在连麦情况下不需要拉流Url进行播放。仅需展示自己的本地摄像头画面[NIMAVChatSDK sharedSDK].netCallManager- (void)onRemoteYUVReady:(NSData *)yuvData width:(NSUInteger)width height:(NSUInteger)height from:(NSString *)user方法获得的数据
  2. 行为
    • 用户的进入与退出通过监听[NIMAVChatSDK sharedSDK].netCallManageronUserJoinedonUserLeft方法进行

总结

  • 这里只讲了大致的流程许多细节并未讲清。整个逻辑梳理的难点在于对于NIMNetCallMeetingNIMChatroom两者的理解。
  • 其实只需记住直播间里面的所有角色都在NIMChatroom中,而主播连麦者同时在NIMNetCallMeetingNIMChatroom中。
  • 想确定一个行为是通过那个渠道进行的。
    1. 判断受众,若这个行为的参与者不仅仅包涵主播与连麦者。(如监听直播间的状态普通观众也要监听)则该行为走的是NIMChatroom
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 2016 年是直播元年,也是这个行业最辉煌的一年,不少平台拿到了B轮,甚至是C轮融资。而直播行业的火爆,直接引来了...
    方弟阅读 49,947评论 7 126
  • 全局创建context? 创建一个全局的context,然后退出SDK层房间时不销毁只是停止context。 SD...
    Carden阅读 5,678评论 0 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,359评论 25 709
  • 今天开始,就正式开营了。内心是纠结的,怕年底了,工作太忙,顾不过来,会辜负了这片热情,压力油然而生。 凌晨4点半,...
    piano潘潘阅读 2,985评论 4 2
  • 在这个撕来撕去的双子座满月,突发灵感,我重新看待满月生的娃~~满月也即太阳月亮形成对宫,在行星形成的相位中,180...
    团的花园阅读 1,688评论 0 0

友情链接更多精彩内容