订阅资源

1、调用 RongRTCRemoteUser 对象订阅(或者取消订阅)媒体流,如果是视频流,请设置 RongRTCAVInputStream 对象的渲染界面,否则视频不可见。 (用户可以遍历所有用户进行相关流的订阅,也可以直接将所有流组合在一起,通过一个 remoteUser 实现所有的流订阅),也可以选择切换使用大码率视频流播放还是小码率视频流播放

/**
 订阅流

 @param avStreams 普通流
 @param tinyStreams 需要携带小流的流数组
 @param completion 完成的回调
 */
- (void)subscribeAVStream:(nullable NSArray<RongRTCAVInputStream *> *)avStreams
              tinyStreams:(nullable NSArray<RongRTCAVInputStream *> *)tinyStreams
               completion:(nullable RongRTCOperationCallback)completion;

/**
 将一个视频流切换成小码率视频流

 @param streams 要切换的流
 @param completion 切换是否成功
 */
-(void)exchangeStreamToTinyStream:(nonnull NSArray<RongRTCAVInputStream *> *)streams
                       completion:(nullable RongRTCOperationCallback)completion;

/**
 将一个视频流切换成正常码率视频流

 @param streams 要切换的视频流
 @param completion 切换是否成功
 */
-(void)exchangeStreamToNormalStream:(nonnull NSArray<RongRTCAVInputStream *> *)streams
                       completion:(nullable RongRTCOperationCallback)completion;


/**
 设置远端用户视频流的渲染界面

 @param render 渲染界面
 */
- (void)setVideoRender:(nullable RongRTCRemoteVideoView*)render;

订阅代码示例:

// 监听发布资源消息
-(void)didPublishStreams:(NSArray<RongRTCAVInputStream *> *)streams{
    // 订阅资源
    [self.room.remoteUsers.firstObject subscribeAVStream:streams tinyStreams:nil completion:^(BOOL isSuccess, NSString *desc) {

    }];
    // 设置远端渲染视图
    for (RongRTCAVInputStream * stream in streams) {
        if (stream.streamType == RTCMediaTypeVideo) {
            RongRTCRemoteVideoView * videoView = [[RongRTCRemoteVideoView alloc]initWithFrame:CGRectMake(100, 250, 100, 100)];
            [stream setVideoRender:videoView];
        }
    }
}