互动直播整体流程
本文主要目的在于理清网易互动直播的整体逻辑,要进行互动直播,我们需要做哪些方面的准备。
思路清晰了,才好进行下一步的整合。
一、直播
直播和互动直播只差了两个字,但这两个字却使得各自使用的套路不同。
直播相对简单,与网易服务器很少打交道,最主要的是我们自己的服务器,根据网易提供的创建频道的接口,向网易服务器申请一个频道。
有了推流、拉流、频道信息,客户端APP基本可以直接使用了,不再与网易服务器打交道了。
2、互动直播
初看互动直播,总觉得迷迷糊糊的,搞不明白。
之所以犯迷糊,主要是要使用互动直播,还必须接入IM账户体系。
自己的账户体系、IM账户体系、自己的服务器、网易的服务器,参合在一起,不细心梳理,很容易在大脑里就成了一团乱麻。
如果是纯直播的话,用户账号体系是我们自己这儿的,但是互动直播是基于IM账号体系做的(互动连麦基于音视频通话,音视频基于IM账号体系),所以必须接入IM账号体系。
这里涉及到几个概念:
自己的账户体系: 就是自己的用户,通过自己的服务器注册的,保存在自己的服务器中。
IM账户体系: IM是即时通讯用的,提供了相关SDK接口,使用的前提是你要向网易服务器注册IM账户,使用这个账户登录后,才可调用其他接口。
那么问题就来了,我这儿用的是自己的账户体系,如何将我自己的账户添加进IM账户体系中呢?
网易建议采取这种策略:
网易IM账户可使用我们自己的账户体系中的用户账号信息进行申请。
然后将自己的账户和IM账户进行一对一绑定,由我们自己的服务器进行保存。
这样,客户端在登录时,使用的还是我们自己的账户信息登录,登录成功后,由我们服务器返回该账户对应的IM账号,以供调用后续SDK接口。
也就是说,我们要为自己的用户账号,分配一个与之对应的IM账号,才能进行互动直播。
怎么分配呢?这就涉及到了我们自己的服务器向网易服务器申请。
2.1 将自己的用户添加到网易IM账户体系中
要想使用互动直播,必须接入IM账号体系。
资料来自:http://dev.yunxin.163.com/docs/product/IM即时通讯/服务端API文档/网易云通信ID?#创建网易云通信ID
初看这张图,有点不知所云。
我大体翻译下:
进行开发前,需要将自己的账户体系,加入到网易账号体系中。
怎么加?
网易提供了这个接口
2.2 登录网易服务器
纯直播SDK,没有这方面的要求。
但是互动直播基于IM账户体系,所以需要使用对应的IM账户登录网易服务器进行验证,验证成功后,才可调用其他SDK接口。
()
怎么登录? 客户端SDK给出了接口
接口中,有一个回调函数,在此判断登录是否成功。
2.3 创直播频道、聊天室、音视频通话房间
A)使用网易聊天室进行互动
登录成功后,因为我们要直播,所以还得有个直播频道,获得推流拉流地址,这也是要向网易申请的。
因为不仅要直播,还要做互动,主播、观众加入聊天室才好互动嘛,所以还需要聊天室房间,这个聊天室房间也是需要提前向网易申请的。
有了直播频道、聊天室后,因为还要有多人音视频通话,这才是互动的关键,要进行多人音视频通话,还得有个音视频房间,这个音视频房间可以由客户端申请,在首次进入这个音视频房间后,网易服务器会返回个音视频房间ID,主要是为了万一有问题,网易可以迅速定位到这个音视频房间。
B)
不使用网易聊天室,仅仅使用音视频房间
聊天互动可由自己的服务器实现,这时候就没必要使用网易的聊天室了。
这时候要实现音视频互动,只需要创建音视频房间就可以。
主要流程如下:
主播:登录IM,设置音视频房间name( uid, 此name是音视频房间的标识,需要传递给连麦的互动者,互动者使用这个name,才可以进入这个房间), 创建音视频房间,进入音视频房间
连麦者: 根据roomname,进入这个音视频房间
这样的话,我们自己的服务器,只需要向网易申请IM体系账户,管理自己的roomname 即可。
2.4 服务器端
直播频道:同纯直播服务一样,需要服务器申请一个直播频道,获得推流拉流地址。
A 方案 使用网易聊天室
1)聊天室:
主播、连麦者、观众是在一个聊天室中,其中主播、连麦者又在自己的音频通话房间中。
要实现互动,所以先要创建聊天室,这个聊天室只能通过服务器API创建,创建成功后,保存在我们自己的服务器上,以便以后使用。
(http://faq.netease.im/#KB0052)
2)音视频通话房间:
聊天室创建好了后,音视频通话房间是由客户端SDK创建的,名字是其唯一标识,但是在加入音视频房间后,回调函数会返回房间ID,这应该是网易系统内的音视频房间身份ID,方便出问题的时候测试用的。
B 方案 不使用网易聊天室
聊天功能可由自己的服务器实现。
这样我们自己的聊天室只需要申请IM账户即可
音视频房间name,可由客户端建立,
3 总结
本文介绍了使用网易互动直播SDK进行开发的整体逻辑,主旨是接入IM体系账号。
客户端登录自己的系统后,
再使用IM账号登录IM,
根据自己的服务器向网易申请的的直播频道、
调用相关接口,
创建音视频通话房间进行互动直播。
参考资料: