跳到主要内容

发布自定义资源

提示

在 Android 平台至少需要调用 publish(RCRTCMediaType.AudioVideo)publish(RCRTCMediaType.Audio) 方法发布成功音频资源后,再发布自定义视频流才有效。tag 不能包含 _RongCloudRTC 字符。

创建自定义视频资源

从本地目录下的资源文件创建自定义视频资源,path 需要是平台绝对路径,tag 为自定义视频标识。

  • 示例代码:

    rtcEngine.createCustomStreamFromFile(path, tag);

设置自定义视频属性

  • 示例代码:

    let config = {
    minBitrate: 500,
    maxBitrate: 2200,
    fps: RCRTCVideoFps.Fps25,
    resolution: RCRTCVideoResolution.Resolution_720x1280,
    };
    rtcEngine.setCustomStreamVideoConfig(tag, config);

设置自定义视频资源预览窗口

  • 示例代码:

    导入预览窗口组件

    // 导入 RCReactNativeRtcView
    import RCReactNativeRtcView from '@rongcloud/react-native-rtc';

    添加预览窗口并获取viewTag

    // 增加 RCReactNativeRtcView 组件, fitType: 视频填充模式, mirror: 视频是否镜像显示。并在ref中获取viewTag
    <RCReactNativeRtcView
    ref={(ref) => {
    let viewTag = findNodeHandle(ref);
    }}
    fitType={RCRTCViewFitType.Center}
    mirror={true}>
    </RCReactNativeRtcView>

    设置预览窗口,其中viewTag是上一步获取的 viewTag

    // 设置预览窗口,viewTag为上一步获取的 viewTag
    rtcEngine.setLocalCustomStreamView(tag, viewTag).then(code=>{
    if (code === 0) {
    // 设置成功
    } else {
    // 设置失败
    }
    })

发布自定义视频资源

  • 示例代码:

    rtcEngine.publishCustomStream(tag);

设置远端自定义视频资源发布监听

  • 示例代码:

    rtcEngine.setOnRemoteCustomStreamPublishedListener((roomId: string, userId: string, tag: string, type: RCRTCMediaType)  => {
    // roomId 房间 ID
    // userId 远端用户 ID
    // tag 远端自定义视频资源 tag
    // type 资源类型
    });

订阅远端自定义视频资源

  • 示例代码:

    rtcEngine.subscribeCustomStream(userId, tag);

设置远端自定义视频资源预览窗口

  • 示例代码:

    // 设置预览窗口,viewTag参考setLocalCustomStreamView说明
    rtcEngine.setRemoteCustomStreamView(userId, tag, viewTag).then(code=>{
    if (code === 0) {
    // 设置成功
    } else {
    // 设置失败
    }
    })