发布自定义流
更新时间:2024-02-26
PDF
用户可自定义视频流,通过发布资源方法发布到房间中。远端用户可使用订阅方法订阅此自定义视频流。
创建本地渲染视图。
// 创建本地渲染视图 RCRTCVideoView *localFileVideoView = [[RCRTCVideoView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; localFileVideoView.fillMode = RCRTCVideoFillModeAspectFit; localFileVideoView.frameAnimated = NO; [self.view addSubview:localFileVideoView];
已复制1
2
3
4
5创建自定义视频流配置 RCRTCVideoStreamConfig。
// 设置自定义视频流配置 RCRTCVideoStreamConfig *videoConfig = [[RCRTCVideoStreamConfig alloc]init]; videoConfig.videoSizePreset = RCRTCVideoSizePreset720x480;
已复制1
2
3调用 createFileVideoOutputStream 创建一个自定义视频流 RCRTCFileVideoOutputStream 对象,并自定义 tag。支持自行选择是否在本端播放音频,是否要用文件中的音频替换麦克风数据。
注意,tag 不能包含
_
和RongCloudRTC
。// 创建自定义视频流 NSString *path = [[NSBundle mainBundle] pathForResource:@"video_demo1_low" ofType:@"mp4"]; NSString *tag = @"RongRTCFileVideo"; RCRTCFileVideoOutputStream *fileVideoOutputStream = [[RCRTCEngine sharedInstance] createFileVideoOutputStream:path replaceAudio:NO playback:YES tag:tag config:videoConfig];
已复制1
2
3
4
5
6
7
8
9渲染自定义视频流。
// 渲染自定义视频流 [fileVideoOutputStream setVideoView:localFileVideoView]; fileVideoOutputStream.delegate = self;
已复制1
2
3使用加入房间成功后返回的 RCRTCRoom 对象中的 RCRTCLocalUser 中的方法发布。
会议模式下,需要使用 publishStream 方法
// 会议模式下,发布自定义视频流 [[RCRTCEngine sharedInstance].room.localUser publishStream:fileVideoOutputStream completion:^(BOOL isSuccess, RCRTCCode code) { }];
已复制1
2
3
4
5直播模式下,需要使用 publishLiveStream 方法
// 直播模式下,发布自定义视频流 [[RCRTCEngine sharedInstance].room.localUser publishLiveStream:fileVideoOutputStream completion:^(BOOL isSuccess, RCRTCCode code, RCRTCLiveInfo * _Nullable liveInfo) { if (code == RCRTCCodeSuccess) { } }];
已复制1
2
3
4
5
6
7
8