互动直播整体流程
本文主要目的在于理清网易互动直播的整体逻辑,要进行互动直播,我们需要做哪些方面的准备。
思路清晰了,才好进行下一步的整合。
一、直播
直播和互动直播只差了两个字,但这两个字却使得各自使用的套路不同。
直播相对简单,与网易服务器很少打交道,最主要的是我们自己的服务器,根据网易提供的创建频道的接口,向网易服务器申请一个频道。
有了推流、拉流、频道信息,客户端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 创直播频道、聊天室、音视频通话房间
登录成功后,因为我们要直播,所以还得有个直播频道,获得推流拉流地址,这也是要向网易申请的。
因为不仅要直播,还要做互动,主播、观众加入聊天室才好互动嘛,所以还需要聊天室房间,这个聊天室房间也是需要提前向网易申请的。
有了直播频道、聊天室后,因为还要有多人音视频通话,这才是互动的关键,要进行多人音视频通话,还得有个音视频房间,这个音视频房间可以由客户端申请,在首次进入这个音视频房间后,网易服务器会返回个音视频房间ID,主要是为了万一有问题,网易可以迅速定位到这个音视频房间。
2.3.1 服务器端
1)直播频道:同纯直播服务一样,需要服务器申请一个直播频道,获得推流拉流地址。
2)聊天室:
主播、连麦者、观众是在一个聊天室中,其中主播、连麦者又在自己的音频通话房间中。
要实现互动,所以先要创建聊天室,这个聊天室只能通过服务器API创建,创建成功后,保存在我们自己的服务器上,以便以后使用。
(http://faq.netease.im/#KB0052)
3)音视频通话房间:
聊天室创建好了后,音视频通话房间是由客户端SDK创建的,名字是其唯一标识,但是在加入音视频房间后,回调函数会返回房间ID,这应该是网易系统内的音视频房间身份ID,方便出问题的时候测试用的。
3 总结
本文介绍了使用网易互动直播SDK进行开发的整体逻辑,主旨是接入IM体系账号。
客户端登录自己的系统后,再使用IM账号登录IM,根据自己的服务器向网易申请的的直播频道、聊天室ID,调用相关接口,创建聊天室、音视频通话房间进行互动直播。
参考资料: