通过参会者事件回调开发者可获取到参会者信息,根据参会者信息可通过平台拉取音视频流。平台默认返回20路以内的音视频流,如需获取更多,可通过获取指定roster信息,然后进行拉流。将拉流的数据结合布局策略开发者可自由定义多种布局。
在SDk3.3.1最新版本新增了全量ROSTER功能,SDK上报会中全量ROSTER,最大支持500人。
入会成功后通过OnRosterInfo示例回调获取到当前参会者信息,参会者信息中的participantId属性标记了参会者的唯一性,拉流接口需要传入参会者的participantId,同时还可以设置每一位参会者视频流的分辨率等信息,您可以根据展示的需求配置拉流策略。 常用方法(使用请参考demo):
// 在 1+N【一个大画面+N个小画面】 自动布局时,用来指定大画面
// 如果不指定,SDK层自动指定当前讲话者为大画面
void FocusVideoStream(uint participantId);
// 开启自定义布局
void EnableCustomLayout(bool enabled);
// 请流设置自定义布局
void SetCustomLayout(SDKCustomLayoutInfo param);
// 订阅ROSTER【与会者】信息。当入会设备大于20方时,可以订阅指定设备的与会者信息。这些信息可以超过 20方
// 默认情况下,SDK层最多返回最近讲话的 20 方与会者信息
void SubscribeRoster(SDKConfDevInfo[] devList);
// 请求会中指定Roster信息,length支持最大20方,当超过20时候按照20方请求,分页加载
void RequestRoster(int startIndex, int length);
// 设置视频控件背景色。当视频尺寸宽高比不等于控件宽高比时,填充此色
void SetVideoBkColor(byte r, byte g, byte b);
// 获取视频控件
FrameworkElement GetVideoElement(string videoSourceId);
// 获取摄像头视频控件
FrameworkElement GetVideoElement4Camera(SDKCameraOrdinal ordinal);
SetCustomLayout请流1080P,需传参数layoutElements中的width和height传1080P的参数,该参数仅代表最大的请流分辨率,实际需结合发送端能力、接收端能力以及带宽等多重因素影响。