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

【新手入门指南】多人音视频

[复制链接]

29

主题

73

帖子

341

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
341
发表于 2018-9-11 13:42:32 | 显示全部楼层 |阅读模式
实时音视频功能介绍:
https://dev.yunxin.163.com/docs/product/%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D/%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/%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D/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/%E5%A4%9A%E4%BA%BA%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D

IOS:https://dev.yunxin.163.com/docs/product/%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D/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/%E5%A4%9A%E4%BA%BA%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D

PC:https://dev.yunxin.163.com/docs/product/%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D/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/%E5%A4%9A%E4%BA%BA%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D?#%E5%A4%9A%E4%BA%BA%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D

WEB:https://dev.yunxin.163.com/docs/product/%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D/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/%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D%E6%B5%81%E7%A8%8B%E5%A4%9A%E4%BA%BA

server:https://dev.yunxin.163.com/docs/product/%E9%9F%B3%E8%A7%86%E9%A2%91%E9%80%9A%E8%AF%9D/%E6%9C%8D%E5%8A%A1%E7%AB%AFAPI%E6%96%87%E6%A1%A3?#%E9%9F%B3%E8%A7%86%E9%A2%91%E6%88%BF%E9%97%B4%E7%AE%A1%E7%90%86

注:1、需要登录IM之后才可以调用音视频相关接口;2、创建和加入多人音视频房间是客户端SDK的接口,server只提供查询和删除的接口;3、多人音视频并没有邀请加入的接口,demo是结合IM(自定义系统通知)实现的;多人音视频与群组、聊天室都是独立的功能,demo在业务层把他们结合在了一起使用。


demo:
https://yunxin.163.com/im-sdk-demo?solutionType=0#solution
即时通讯和在线教育的demo均实现了多人音视频的功能
注:1、即时通讯的demo在创建多人音视频房间时,把群的tid作为了房间的roomname,且邀请的流程是结合自定义系统通知实现;2、在线教育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

多人音视频相关FAQ:
标题:关于多人音视频房间
链接:https://faq.yunxin.163.com/#KB0121

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

标题:创建多人音视频房间/互动直播房间返回417
链接:https://faq.yunxin.163.com/#KB0122

标题:关于音视频通话服务器录制
链接:https://faq.yunxin.163.com/#KB0097

标题:关于音视频通话本地录制
链接:https://faq.yunxin.163.com/#KB0095

进阶FAQ:
标题:关于音视频和互动直播SDK [本地视频前处理] (如滤镜、水印等)的说明
链接:https://faq.yunxin.163.com/#KB0124

标题:音视频/互动直播SDK怎么设置不发送或不接收音视频
链接:https://faq.yunxin.163.com/#KB0126

标题:关于音视频通话/互动直播的QoS策略
链接:https://faq.yunxin.163.com/#KB0127

标题:音视频通话怎么获取通话ID
链接:https://faq.yunxin.163.com/#KB0237




回复

使用道具 举报

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

本版积分规则

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