主要思路步骤:
-
设置合流布局的操作由主播完成,当主播合流布局设置成功后,可以将各个主播在合流布局中的位置尺寸存放在房间的 KV 属性中;
-
主播每次设置合流都去更新这个 KV 并通知给房间内的其他人,观众获取到 KV 后,根据 KV 中的尺寸数据与观众手机上渲染视图的大小计算主播的实际占位区域。
需要注意的细节:
- 如果使用了融云的 IM 聊天室的话,建议使用聊天室的 KV 属性设置( 聊天室属性 ):
[[RCIMClient sharedRCIMClient] setChatRoomEntry:chatroomId
key:key
value:value
sendNotification:isNotice
autoDelete:isDelete
notificationExtra:extra
success:^{
} error:^(RCErrorCode nErrorCode) {
}];
如果只是使用音视频房间,没有绑定对应的聊天室聊天的话,可以使用音视频房间的 KV 属性设置( 音视频房间属性 ):
[[RCRTCEngine sharedInstance].room setAttribute:[info toJsonString]
forKey:@"属性 Key 值"
message:message
completion:^(BOOL isSuccess, RCRTCCode code) {}];
2、KV 内存放的数据是客户根据业务自主决定的,可以存放一个 mode,mode 内绑定主播 id,对应的位置以及其他信息。设置时机可以在设置合流布局成功后( 合流设置 ):
[self.liveInfo setMixConfig:config completion:^(BOOL isSuccess, RCRTCCode code) {
if (isSuccess) {
//设置 kv
} else {
NSLog(@"%ld",(long)code);
}
}];