发布自定义资源
提示
在 Android 平台至少需要调用 publish(RCRTCMediaType.AudioVideo)
或 publish(RCRTCMediaType.Audio)
方法发布成功音频资源后,再发布自定义视频流才有效。tag 不能包含 _
和 RongCloudRTC
字符。
创建自定义视频资源
方法
JavaScript
engine.createCustomStreamFromFile();
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
path | String | 是 | 本地资源文件路径,需要是平台绝对路径 |
tag | String | 是 | 自定义视频资源标识,不能包含 _ 和 RongCloudRTC 字符 |
示例代码
JavaScript
/// 从本地目录下的资源文件创建自定义视频资源,路径需要是平台绝对路径
engine.createCustomStreamFromFile(path, tag);
console.log('自定义视频资源创建成功');
设置自定义视频属性
方法
JavaScript
engine.setCustomStreamVideoConfig();
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tag | String | 是 | 自定义视频资源标识 |
config | RCRTCVideoConfig | 是 | 视频配置参数 |
示例代码
JavaScript
let config = {
minBitrate: 500,
maxBitrate: 2200,
fps: RCRTCVideoFps.Fps24,
resolution: RCRTCVideoResolution.Resolution_720x1280,
};
engine.setCustomStreamVideoConfig(tag, config);
console.log('自定义视频属性设置成功');
设置自定义视频资源预览窗口
导入预览窗口组件
JavaScript
// 导入 RCRTCView
import RCRTCView from '@/uni_modules/RongCloud-RTCWrapper/components/RCRTCView';
// 声明 RCRTCView
export default {
components: {
RCRTCView,
},
}
添加预览窗口
xml
<!-- 增加 RCRTCView 组件, fitType: 视频填充模式, mirror: 视频是否镜像显示 -->
<RCRTCView class="customStreamView" ref="customStreamView" :fitType="RCRTCViewFitType.Center" :mirror="true">
</RCRTCView>
设置预览窗口
方法
JavaScript
engine.setLocalCustomStreamView();
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tag | String | 是 | 自定义视频资源标识 |
view | Object | 是 | 预览窗口组件引用 |
callback | Function | 否 | 设置结果回调 |
示例代码
JavaScript
// 设置预览窗口
engine.setLocalCustomStreamView(tag, this.$refs.customStreamView.getNativeViewRef(), (code) => {
if (code === 0) {
// 设置成功
console.log('自定义视频预览窗口设置成功');
} else {
// 设置失败
console.log('自定义视频预览窗口设置失败');
}
});
发布自定义视频资源
方法
JavaScript
engine.publishCustomStream();
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
tag | String | 是 | 自定义视频资源标识 |
示例代码
JavaScript
engine.publishCustomStream(tag);
console.log('自定义视频资源发布成功');
设置远端自定义视频资源发布监听
方法
JavaScript
engine.setOnRemoteCustomStreamPublishedListener();
回调参数
参数 | 类型 | 说明 |
---|---|---|
roomId | String | 房间 ID |
userId | String | 远端用户 ID |
tag | String | 远端自定义视频资源 tag |
type | RCRTCMediaType | 资源类型 |
示例代码
JavaScript
engine.setOnRemoteCustomStreamPublishedListener(({roomId, userId, tag, type}) => {
// roomId 房间 ID
// userId 远端用户 ID
// tag 远端自定义视频资源 tag
// type 资源类型
console.log('远端自定义视频资源发布:', userId, 'tag:', tag);
});
订阅远端自定义视频资源
方法
JavaScript
engine.subscribeCustomStream();
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | String | 是 | 远端用户 ID |
tag | String | 是 | 自定义视频资源标识 |
示例代码
JavaScript
engine.subscribeCustomStream(userId, tag);
console.log('订阅远端自定义视频资源成功');
设置远端自定义视频资源预览窗口
方法
JavaScript
engine.setRemoteCustomStreamView();
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
userId | String | 是 | 远端用户 ID |
tag | String | 是 | 自定义视频资源标识 |
view | Object | 是 | 预览窗口组件引用 |
callback | Function | 否 | 设置结果回调 |
示例代码
JavaScript
// 设置预览窗口
engine.setRemoteCustomStreamView(userId, tag, this.$refs.remoteCustomStreamView.getNativeViewRef(), (code) => {
if (code === 0) {
// 设置成功
console.log('远端自定义视频预览窗口设置成功');
} else {
// 设置失败
console.log('远端自定义视频预览窗口设置失败');
}
});