关于直播的一些思路

序言

推拉流这里暂不涉及了,这里主要说一下直播的一些逻辑流程的难点。

直播架构-层级划分

为了更方便的实现和管理代码,个人把直播划分为3个层级
1、直播层:用于实现推流和拉流以及回调的监听;
2、交互层:用于弹幕发送和功能按钮的点击;
3、礼物展示层:用于礼物动画的展示,且在最上层。

直播层

开启直播

1、一进入直播模块就获取用户直播信息,在点击开启直播时进行判断:如果还不是认证主播,就进行实名认证;如果是认证主播,再获取主播相关信息。

2、调开启直播接口,通知服务器开启直播,并调用开启和进入直播间接口,通知服务器进入直播间,查看是否用相机、麦克风权限,然后开始推流。

3、推流过程中要监听几种推流状态:
   1)打开摄像头失败;
   2)打开麦克风失败;
   3)网络波动状态;
   4)断网状态(重连服务器);
   5)断网后多次重连服务器失败状态(主播退出直播界面至列表界面);
   6)推流成功状态(加载动画结束,客户端设置用户为开播状态)。

关闭直播

1、调关闭直播接口,通知服务器关闭直播,并调用关闭和退出直播间接口,通知服务器退出直播间。然后停止推流。

2、进入结算界面。

观看直播

1、观众通过后台获取拉流地址播放直播画面;

2、监听播放事件回调,做相应UI操作。

交互层(即时通讯)

交互层负责所有的用户交互,是整个直播模块的难点,也是客户端要实现的最复杂的部分,交互有很多(看产品 ̄_, ̄ ),比较典型或复杂的有:
1、聊天弹幕的发送,礼物的发送;
2、守护席的争夺;
3、观众与主播连麦;
4、主播与主播的PK。

为什么要括弧个即时通讯呢,因为交互层这个层级就是和即时通讯紧密联系在一起的,无时无刻都在即时通讯!先举个守护席的例子吧。

注:使用即时通讯时的字段两端要统一。

守护席

守护席的状态要分两个视角:抢占视角与观看视角。

抢占视角:抢占细节就不详述了,主要说流程。抢占观众在点击抢占后发送请求给服务器,成功后改变自身UI,然后发送即时通讯(注明抢占字段的即使消息)给聊天室里的其他人。其他人通过即时通讯回调解析抢占消息刷新抢占UI。

观看视角:其他观众收到通知,解析为有人获得守护席通知,改变守护席UI。

弹幕聊天

字段需求:个人产品的需求是需要展示人物等级,用户名根据等级改变颜色且可点击。所以这里即时通讯就要传递用户名、等级、发言内容等字段。

发送者视角:发送者发送一条即时通讯消息,消息发送给聊天室里的所有用户。消息发送成功后在自己聊天列表添加一条消息。

接收者视角:接收者在接收到消息后,解析为聊天消息,在聊天列表添加一条消息。

观众与主播连麦

需求是最多支持三个连麦。那么这里就要记录主播连麦观众信息数组,这样可以更方便的管理主播的连麦观众。因为连麦也有即时性的特性,所以也用即时通讯实现。
先理清身份,连麦有三个身份:主播方、连麦观众方与普通观众方。

连麦观众方:发起连麦,等待主播同意;同意并获取主播拉流后跳转推流界面进行推流并小窗口展示播放主播画面。(注:这里推流和拉流的监听依旧要做好)。这里发起连麦会有几种拒绝状态:1.主播手动拒绝;2.请求超时;3.主播占线中;4.主播连麦人数已满;5.主播在PK中;6.主播连麦功能关闭。

主播方:收到连麦请求,同意后发送带有自己底链路拉流地址给连麦观众,并展示播放器,但没有画面;待收到连麦观众低链路拉流地址后播放,并做混流处理。同样要做好播放监听。

普通观众方:普通观众基本不要做什么,播放的是混流地址。

主播与主播的PK

个人认为主播与主播之间的PK相对于连麦要简单些。
这里也是三个角色:发起PK主播方、接收PK主播方与双方普通观众方。

发起PK主播方:发起PK,并发送自己低链路拉流地址;等待接收PK主播方同意,同意后,改变自己推流画面UI,并播放接收PK主播拉流地址,并做混流处理。也有几种拒绝状态:1.主播手动拒绝;2.请求超时;3.直播占线中;4.直播在PK中;5.主播在连麦中;6.主播PK功能关闭。

接收PK主播方:接收PK请求,同意后发送自己低链路拉流地址给发起PK主播,并改变自己推流UI和播放发起PK主播低链路拉流地址的小窗口,并要做好混流处理。

双方普通观众方:普通观众基本不要做什么,播放的是混流地址。

礼物展会层

礼物展示层主要展示礼物特效。这一块涉及到即时通讯、礼物编码设计和支付功能(内购)。在容我三思而后作。

拓展

重复登录

被踢方:收到重复登录回调,要么杀死app,要么通知直播模块底层控制器。获取导航栏控制器数组最后一个控制器(当前控制器),回退至根控制器。
登陆方:一进入直播模块就获取主播信息,如果是正在直播状态,就弹出是否继续直播提示框。是就直接跳转直播推流画面。

结语

· 直播还有很多知识点,这只是冰山中的一角。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容

  • 本文主要探讨人工智能相关技术在大微映画公司直播业务中的应用场景。 AI+直播应用场景一:直播内容审核 内容审核难点...
    shenciyou阅读 3,297评论 0 6
  • 非常感谢大家利用自己宝贵的时间来阅读我的文章 , 这篇文章主要写一个iOS系统直播连麦功能的实现 ,如果你正好需要...
    筱贰笔阅读 6,967评论 0 14
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,914评论 25 707
  • 《我,一个人生活》 个人理财当中 80%是行为,只有 20%是各种知识和算计。上面的内容,百分比也好,复利计算也好...
    琳小喵阅读 139评论 0 0
  • 上一章:余笙,卿多多指教(12)目录:余笙,卿多多指教目录 A市不能惹的人之一,顾言卿。 传闻中他之前是黑道背景,...
    墨阑阅读 372评论 0 2