更新记录
6.1.1(2023-08-18)
- 修复iOS刷新远端视图无效bug(内测);
6.1.0(2023-08-11)
- 升级基础库;
6.0.0(2023-02-15)
- 升级IM SDK至7.0.3754;
- 升级TRTC SDK至10.9.0;
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:11 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
腾讯云多人视频会议
腾讯云多人视频会议, 提供多人视频会议功能,包括屏幕分享、美颜、低延时会议等在多人视频会议场景下的相关能力。
支持以下功能:
- 主持人创建会议房间,参会人员输入房间号后进入会议。
- 参会人员之间进行屏幕分享。
- 支持发送各种文本消息和自定义消息。
接口模式(纯API)
扫描下方二维码,安装示例代码,快速体验插件功能:
Android | iOS | 联系我们 |
---|---|---|
扫码添加技术支持(微信号: ruanyunkeji006),开通测试账号。
UI模式
扫描下方二维码,安装示例代码,快速体验插件功能:
Android | iOS | 联系我们 |
---|---|---|
扫码添加技术支持(微信号: ruanyunkeji006),开通测试账号。
定制UI
扫码添加我们技术支持(微信号: ruanyunkeji006),联系定制UI
技术支持
建议扫码添加我们技术支持,协助接入和测试。
联系我们 | 微信号 | 更多功能 |
---|---|---|
ruanyunkeji006 |
视图刷新 美颜功能 自动签名 |
快速开始
步骤1: 插件的加载和配置
- 加载插件
首先,加载uniapp平台的原生插件,需要自定义基座后才能使用,您可以按照自定义基座文档进行。
其次,新建nvue文件,注意该插件必须在nvue中使用。
插件名称为: RY-TencentTrtcMeeting,
该插件为Component类型,需要使用
<RY-TencentTrtcMeeting ref="meeting" v-bind:style = "{ width: playerWidth, height: playerHeight }"></RY-TencentTrtcMeeting>
备注:
可以通过改变width和height参数的大小,来改变视图容器的大小。
- 腾讯云配置
- 生成签名
手动签名点击 UserSig生成&校验 选择对应的sdkAppId的应用,输入userId,获取对应的用户签名userSig;
如果您需要【自动签名】,联系我们(微信号: ruanyunkeji006)获取。
步骤2: 开始使用插件
init 初始化插件之后,才可以调用各个接口功能。
this.$refs.meeting.init({
docPath: plus.io.convertLocalFileSystemURL('_doc')
}, ret => {
console.log(ret);
});
步骤3: 设置监听器
调用设置监听器 setMeetingListener,监听会议的事件回调
this.$refs.meeting.setMeetingListener({}, ret => {
console.log(ret);
});
步骤4: 登录
调用 login 函数完成组件的登录,请填写以下关键参数:
参数名 | 作用 |
---|---|
sdkAppId | 您可以在 实时音视频控制台 中查看 sdkAppId |
userId | 当前用户的Id,字符串类型,只允许包含英文字母(a-z、A-Z)、数字(0-9)、连词符 - 和下划线 _ |
userSig | 用户签名 |
this.$refs.meeting.login({
sdkAppId: 1423xx38,
userId: 'test001',
userSig: 'jkwic1xxx2mn12'
}, ret => {
console.log(ret);
});
步骤5: 创建多人会议
- 主持人执行 步骤4 登录后,可以调用 setSelfProfile 设置自己的昵称和头像。
- 主持人调用 setMeetingListener 可以进行事件监听,调用 createMeeting 创建新的会议房间。
- 主持人可以调用 startCameraPreview 进行视频画面的采集,也可以调用 startMicrophone 进行声音的采集。
说明:
非企业版 SDK 不支持变脸和贴图挂件功能,如果有企业版需求,请联系我们上方的技术客服。
// 1.主播设置昵称和头像
this.$refs.meeting.setSelfProfile({
userName: 'A',
avatarUrl: 'http://xxx.myqcloud.com/xxx.png'
}, ret => {
console.log(ret);
});
// 2.主播创建房间
this.$refs.meeting.createMeeting({
roomId: self.roomId
}, ret => {
if (ret.status) {
// 创建房间成功
this.$refs.meeting.startCameraPreview({
isFront: true,
rect: {
x: 0,
y: 0,
w: self.playerWidth,
h: self.playerHeight
}
}, ret => {
console.log(ret);
});
this.$refs.meeting.startMicrophone({}, ret => {
console.log(ret);
});
}
});
步骤6:参会成员进入多人会议
- 参会成员执行 步骤4 登录后,可以调用 setSelfProfile 设置自己的昵称和头像。
- 参会成员调用 enterMeeting 并传入会议房间号即可进入会议房间。
- 参会成员可以调用 startCameraPreview 进行视频画面的采集,调用 startMicrophone 进行声音的采集。
- 如果有其他的参会成员打开了摄像头,会收到 onUserVideoAvailable 的事件,此时可以调用 startRemoteView 并传入 userId 开始播放。
// 1. 参会成员设置昵称和头像
this.$refs.meeting.setSelfProfile({
name: 'A',
avatarUrl: 'http://xxx.myqcloud.com/xxx.png'
}, ret => {
console.log(ret);
});
// 2. enterMeeting 函数实现
this.$refs.meeting.enterMeeting({
roomId: 1234
}, ret => {
if (ret.status) {
this.$refs.meeting.startCameraPreview({
rect: {
x: 0,
y: 0,
w: self.playerWidth,
h: self.playerHeight
}
}, ret => {
console.log(ret);
});
this.$refs.meeting.startMicrophone({}, ret => {
console.log(ret);
});
} else {
console.log('进入会议失败: ' + ret.msg);
}
});
this.$refs.meeting.setMeetingListener({}, ret => {
if (ret.hasOwnProperty('eventType')) {
//收到回调,并调用 startRemoteView,传入 userId 开始播放
if ('onUserVideoAvailable' == ret.eventType && ret.available) {
this.$refs.meeting.startRemoteView({
userId: ret.userId,
rect: {
x: 0,
y: 0,
w: self.playerWidth / 2,
h: self.playerHeight / 2
}
}, ret => {
console.log(ret);
});
} else {
this.$refs.meeting.stopRemoteView({
userId: ret.userId
}, ret => {
console.log(ret);
});
}
}
});
步骤7:屏幕分享
- 调用 startScreenCapture,传入编码参数即可实现屏幕分享功能,具体信息请参见示例代码。
- 会议中其他成员会收到 onUserVideoAvailable 的事件通知。
注意:
屏幕分享和摄像头采集是两个互斥的操作,如果需要打开屏幕分享功能,请先调用stopCameraPreview 关闭摄像头采集。
this.$refs.meeting.startScreenCapture({}, ret => {
console.log(ret);
});
步骤8:实现文字聊天和禁言消息
- 通过 sendRoomTextMsg 可以发送普通的文本消息,所有在该房间内的主播和观众均可以收到 onRecvRoomTextMsg 回调。
即时通信 IM 后台有默认的敏感词过滤规则,被判定为敏感词的文本消息不会被云端转发。
// 发送端:发送文本消息
this.$refs.meeting.sendRoomTextMsg({
msg: 'Hello World!'
}, ret => {
console.log(ret);
});
this.$refs.metting.setMeetingListener({}, ret => {
if (ret.hasOwnProperty('eventType')) {
// 接收端:监听文本消息
if ('onRecvRoomTextMsg' == ret.eventType) {
console.log('收到来自:' + ret.userInfo.userId + '的消息' + ret.message);
}
}
});
- 通过 sendRoomCustomMsg 可以发送自定义(信令)的消息,所有在该房间内的主持人和与会观众均可以收到 onRecvRoomCustomMsg 回调。
自定义消息常用于传输自定义信令,例如用于禁言之类的会场控制等。
// 发送端:您可以通过自定义 Cmd 来区分禁言通知
// eg:"CMD_MUTE_AUDIO"表示禁言通知
this.$refs.meeting.sendRoomCustomMsg({
cmd: 'CMD_MUTE_AUDIO',
msg: '1'
}, ret => {
console.log(ret);
});
this.$refs.metting.setMeetingListener({}, ret => {
if (ret.hasOwnProperty('eventType')) {
// 接收端:监听自定义消息
if ('onRecvRoomCustomMsg' == ret.eventType) {
console.log('收到来自:' + ret.userInfo.userId + '的禁言通知' + ret.message);
}
}
});
更多功能
- 自动签名
- 美颜功能
- 视图刷新
扫码添加, 获取技术支持:
微信号: ruanyunkeji006