文档导航
iOS
SDK 版本:  5.X

发布自定义流

更新时间:2024-02-26 PDF

用户可自定义视频流,通过发布资源方法发布到房间中。远端用户可使用订阅方法订阅此自定义视频流。

  1. 创建本地渲染视图。

    // 创建本地渲染视图
    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

  2. 创建自定义视频流配置 RCRTCVideoStreamConfig

    // 设置自定义视频流配置
    RCRTCVideoStreamConfig *videoConfig = [[RCRTCVideoStreamConfig alloc]init];
    videoConfig.videoSizePreset = RCRTCVideoSizePreset720x480;
                  
    已复制
    1
    2
    3

  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

  4. 渲染自定义视频流。

    // 渲染自定义视频流
    [fileVideoOutputStream setVideoView:localFileVideoView];
    fileVideoOutputStream.delegate = self;
                  
    已复制
    1
    2
    3

  5. 使用加入房间成功后返回的 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

文档反馈
    意见反馈

    您的改进建议

    意见反馈

    问题类型

    联系我们

    提交工单

    技术支持|集成使用|产品方案


    商务咨询

    7 x 24 小时

    为您解答方案与报价问题

    131 6185 6839

    文档反馈