请选择 进入手机版 | 继续访问电脑版
查看: 51895|回复: 0

【新手入门指南】互动直播

[复制链接]

29

主题

73

帖子

341

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
341
发表于 2018-9-11 11:04:11 | 显示全部楼层 |阅读模式
互动直播功能介绍:
https://dev.yunxin.163.com/docs/product/%E4%BA%92%E5%8A%A8%E7%9B%B4%E6%92%AD/%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D/%E7%AE%80%E4%BB%8B


互动直播场景介绍:
互动直播具有多人音视频和直播的双重特点,主播和连麦者在实时互动的同时,观众可以拉流观看,适合多类综合场景,如娱乐直播、互动教学、会议直播等。区别于直播和多人音视频请见下面的FAQ。


互动直播架构图:



开发手册:
安卓:
https://dev.yunxin.163.com/docs/product/%E4%BA%92%E5%8A%A8%E7%9B%B4%E6%92%AD/SDK%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/Android%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/%E4%BA%92%E5%8A%A8%E7%9B%B4%E6%92%AD%E6%8E%A5%E5%85%A5%E6%B5%81%E7%A8%8B

IOS:https://dev.yunxin.163.com/docs/product/%E4%BA%92%E5%8A%A8%E7%9B%B4%E6%92%AD/SDK%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/iOS%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/%E4%BA%92%E5%8A%A8%E7%9B%B4%E6%92%AD%E6%88%BF%E9%97%B4%E6%8E%A5%E5%85%A5

PC:https://dev.yunxin.163.com/docs/product/%E4%BA%92%E5%8A%A8%E7%9B%B4%E6%92%AD/SDK%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/Windows%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/%E4%BA%92%E5%8A%A8%E7%9B%B4%E6%92%AD%E6%88%BF%E9%97%B4%E6%8E%A5%E5%85%A5

WEB:https://dev.yunxin.163.com/docs/product/%E4%BA%92%E5%8A%A8%E7%9B%B4%E6%92%AD/SDK%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/Web%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/%E4%BA%92%E5%8A%A8%E7%9B%B4%E6%92%AD%E6%8E%A5%E5%85%A5%E6%B5%81%E7%A8%8B

server(创建直播频道获取推拉流地址):https://dev.yunxin.163.com/docs/product/%E7%9B%B4%E6%92%AD/%E6%9C%8D%E5%8A%A1%E7%AB%AFAPI%E6%96%87%E6%A1%A3?pos=toc-1-0

云信服务器接口示例:
https://bbs.yunxin.163.com/forum.php?mod=viewthread&tid=17

:1、互动直播的接口流程其实和多人音视频基本一致;2、由于互动直播需要推流到CDN,所以server文档提供的是创建直播频道的api;3、互动直播与聊天室都是独立的功能,demo在业务层把他们结合在了一起使用。


demo:
https://yunxin.163.com/im-sdk-demo?solutionType=0#solution
互动直播demo结合了互动直播和聊天室
注:互动直播demo在创建互动直播房间时,把聊天室roomid作为了房间的roomname,且申请和同意互动结合了IM(自定义系统通知)实现,申请连麦队列结合了聊天室队列功能实现。


互动直播之主播和连麦者接口流程:
●  安卓
        1、主播或者管理员创建房间 AVChatManagerLite.createRoom(String, String, AVChatCallback)。 创建房间仅仅是在服务器预留一个房间名,房间未使用时有效期为30天,使用后的房间在所有用户退出后回收。
        2、注册音视频模块监听 AVChatManagerLite.observeAVChatState(AVChatStateObserverLite, boolean)。
        3、开启音视频引擎 AVChatManagerLite.enableRtc()。
        4、设置通话场景, 如没有特殊需求不用设置 AVChatManagerLite.setChannelProfile(int) 。
        5、设置互动直播模式,设置互动直播推流地址 [仅限互动直播]   
            AVChatParameters.KEY_SESSION_LIVE_MODE, (主播和连麦者)
            AVChatParameters.KEY_SESSION_LIVE_URL(主播)
        6、打开视频模块 AVChatManagerLite.enableVideo()。
        7、设置视频采集模块 AVChatManagerLite.setupVideoCapturer(AVChatVideoCapturer)。
        8、设置本地预览画布 AVChatManagerLite.setupLocalVideoRender(IVideoRender, boolean, int)         
        9、设置视频通话可选参数[可以不设置]  
            AVChatManagerLite.setParameter(AVChatParameters.Key, Object),     
            AVChatManagerLite.setParameters(AVChatParameters)。
        10、打开本地视频预览 AVChatManagerLite.startVideoPreview()。
        11、加入房间 AVChatManagerLite.joinRoom2(String, AVChatType, AVChatCallback)。
        注:默认加入是没有上行数据的,即只能听和看,如果需要上行数据,可以在加入的时候设置AVChatParameters.Key->KEY_SESSION_MULTI_MODE_USER_ROLE,或在加入成功之后调用AVChatManager.getInstance().enableAudienceRole(false);
        12、开始多人会议或者互动直播,以及各种音视频操作。
        13、收到onUserJoined(String account)回调(其他用户加入房间通知
)后设置远端画布,调用AVChatManagerLite.setupRemoteVideoRender(String account, IVideoRender render, boolean mirror, int scalingType);
        14、关闭本地预览 AVChatManagerLite.stopVideoPreview() 。
        15、关闭视频模块 AVChatManagerLite.disableVideo() ()} 。
        16、离开会话 AVChatManagerLite.leaveRoom2(String, AVChatCallback)。
        17、关闭音视频引擎, AVChatManagerLite.disableRtc()。

●  IOS:
        1、添加音视频相关代理 - (void)addDelegate: (id< NIMNetCallManagerDelegate>)delegate
        2、主播或者管理员创建房间- (void)reserveMeeting: (NIMNetCallMeeting *)meeting
        3、设置互动直播模式,设置互动直播推流地址 [仅限互动直播]
            NIMNetCallOption.enableBypassStreaming(主播和连麦者)
            NIMNetCallOption.bypassStreamingUrl(主播)
        4、开始视频采集- (BOOL)startVideoCapture: (NIMNetCallVideoCaptureParam *)param,用于需要在开始音视频通话之前开启视频采集的场景,如无此场景可在发起呼叫的参数中指定NIMNetCallVideoCaptureParam
        5、监听本地视频数据回调- (void)onLocalDisplayviewReady: (UIView *)displayView
        6、设置其他音视频通话相关参数NIMNetCallOption
        7、加入房间- (void)joinMeeting: (NIMNetCallMeeting *)meeting 注:默认加入是没有上行数据的,即只能听和看,如果需要上行数据,可以在加入的时候设置NIMNetCallMeeting >actor,或在加入成功之后调用netCallManager setMeetingRole:YES
        8、开始多人会议或者互动直播,以及各种音视频操作。
        9、当其他用户加入房间,会收到onRemoteYUVReady回调,拿到YUV数据完成UI绘制
        10、关闭本地预览- (void)stopVideoCapture
        11、离开会话- (void)leaveMeeting: (NIMNetCallMeeting *)meeting


互动直播之观众拉流观看接口流程:
参见:https://bbs.yunxin.163.com/forum.php?mod=viewthread&tid=1911


互动直播相关FAQ:
Q:多人音视频、直播和互动直播的区别
A:
        1、直播:直播是1个主播+N个观众(支持千万级),主播将音视频数据上传到CDN节点(主播端进行推流),观众从CDN节点获取到音视频数据(观众端进行拉流)。直播拉流观看会存在延迟,具体延迟时间由拉流协议和网络状况决定。
        2、多人音视频:云信的多人音视频通话支持同时在线200人,但由于带宽和设备性能的限制,建议同时上行音视频数据的用户不超过5人。音视频数据传输基于UDP协议封装,所以具有低延时的特点。
        3、互动直播:互动直播实际是多人音视频+直播的场景,1个主播+多个连麦者(至多视频连麦4个或纯音频连麦12个)+N个观众(支持千万级),云信服务器会合成主播和连麦观众的画面,然后推流到CDN,观众端通过拉流进行观看。由于主播和连麦者之间通过音视频通道传输,所以也具备低延时的特点;观众通过CDN拉流,所以会存在延迟,具体延迟时间由拉流协议和网络状况决定。

标题:互动直播简介
链接:https://faq.yunxin.163.com/#KB0128

标题:怎么设置互动直播纯音频连麦模式
链接:https://faq.yunxin.163.com/#KB0130

互动直播同样适用多人音视频FAQ(主播和连麦者)参见:https://bbs.yunxin.163.com/forum.php?mod=viewthread&tid=1902

进阶版:
标题:怎么设置互动直播观众观看到的布局模式
链接:https://faq.yunxin.163.com/#KB0261

标题:关于互动直播设置连麦者为主画面
链接:https://faq.yunxin.163.com/#KB0321












回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表