更新记录
6.0.0(2023-03-20)
- 升级IM SDK至7.0.3754;
- 升级TRTC SDK至10.9.0;
- 升级基础库;
5.3.3(2022-10-09)
- 修复Android视频画面点击事件冲突bug;
5.3.2(2022-10-08)
- 修复Android浮窗功能bug(内测);
- 修复Android内测接口无法调用bug;
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 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-TencentTrtcVideoCall
使用
<RY-TencentTrtcVideoCall ref="videoCall" v-bind:style = "{ width: playerWidth, height: playerHeight }"></RY-TencentTrtcVideoCall>
备注:
可以通过改变width和height参数的大小,来改变视图容器的大小。
- 腾讯云配置
- 点击应用管理,进入应用列表;
- 点击 "创建应用",填入相关信息,创建新应用; 如果使用已有应用,则跳过这步;
- 点击"应用信息",进入应用详情;
- 在"应用信息"标签卡中,点击"SDKAppID"后面的复制按钮,复制SDKAppId,并保存,对应为后文中的"sdkAppId"。
- 生成签名
手动签名点击 UserSig生成&校验 选择对应的sdkAppId的应用,输入userId,获取对应的用户签名userSig;
如果您需要【自动签名】,联系我们获取。
步骤2: 插件初始化
必须调用 init 函数初始化后,才可以使用插件的各个功能。
this.$refs.videoCall.init({
docPath: plus.io.convertLocalFileSystemURL('_doc')
}, ret => {
console.log(ret);
});
步骤3: 设置监听
通过设置 setVideoCallListener 监听,可以获取视频通话过程中的事件回调,事件回调。
this.$refs.videoCall.setVideoCallListener({}, ret => {
console.log(ret);
});
步骤4: 登录
调用 login 完成组件登录,其中几个关键参数参考下表:
参数 | 作用 |
---|---|
sdkAppId | 实时音视频应用id |
userId | 当前用户的Id |
userSig | 用户签名 |
this.$refs.videoCall.login({
sdkAppId: 1423112512,
userId: 'test001',
userSig: 'jfds123xxxxjkjlfd'
}, ret => {
console.log(ret);
});
步骤5: 实现1V1通话
- 发起方: 调用 openCamera 函数打开自己的本地摄像头,同时调用 call 发起视频通话的请求。
- 接收方: 当接收方处于已登录状态时,监听器会收到 setVideoCallListener#onInvited 事件回调。
- 接收方: 如果希望接听通话,接收方可以调用 accept 函数,可以同时调用 openCamera 函数打开自己的本地摄像头。接收方也可以使用 reject 拒绝此次视频通话。
- 当双方音视频通道建立完成,通话双方还会收到 setVideoCallListener#onUserVideoAvailable 的事件回调。此时双方用户可以调用 startRemoteView 展示远端的视频画面。视频通话远端的声音默认是自动播放的。
// 1.监听回调
this.$refs.videoCall.setVideoCallListener({}, ret => {
if (ret.hasOwnProperty('eventType')) {
// 接听/拒绝
// 此时 B 如果也登录了IM系统,会收到 onInvited 回调
// 可以调用 RY-TencentTrtcVideoCall 的accept方法接受
// 或 RY-TencentTrtcVideoCall 的reject方法拒绝
if ('onInvited' == ret.eventType) {
this.$refs.videoCall.accept({}, ret => {
console.log(ret);
});
}
// 2.观看对方的画面
// 由于 A 打开了摄像头,B 接受通话后会收到 onUserVideoAvailable 回调
if ('onUserVideoAvailable' == ret.eventType) {
if (ret.avaliable) {
this.$refs.videoCall.startRemoteView({
userId: ret.userId,
rect: {
x: 0,
y: 0,
w: self.playerWidth / 2,
h: self.playerHeight / 2
}
}, ret => {
console.log(ret);
});
} else {
this.$refs.videoCall.stopRemoteView({
userId: ret.userId
}, ret => {
console.log(ret);
});
}
}
}
});
// 3.调用组件的其他功能函数发起通话或挂断等
// 注意:必须在登录后才可以正常调用
// 发起视频通话
this.$refs.videoCall.call({
userId: '目标用户'
}, ret => {
console.log(ret);
});
// 挂断
this.$refs.videoCall.hangUp({}, ret => {
console.log(ret);
});
// 拒绝
this.$refs.videoCall.reject({}, ret => {
console.log(ret);
})
步骤6: 实现多人通话
- 发起方:多人视频通话需要调用 groupCall 函数,并传入用户列表(userIdList)、群组 IM ID(groupId),其中 userIdList 为必填参数,groupId 为选填参数。
- 接收端:通过 setVideoCallListener#onInvited 事件回调能够接收到此呼叫请求,其中参数列表就是发起方填入的参数列表,通话类型为视频通话。
- 接收端:收到回调后可以调用 accept 方法接听此次通话,也可以选择用 reject 方法拒绝通话。
- 如果超过一定时间(默认30s)没有回复,接收方监听器会收到 setVideoCallListener#onCallingTimeOut 的事件回调,发起方监听器会收到 setVideoCallListener#onNoResp 回调。通话发起方在多个接收均未应答时 hangup ,每个接收方监听器均会收到 setTrtcVideoCallListener#onCallingCancel 回调。
- 如果需要离开当前多人通话可以调用 hangup 方法。
- 如果通话中有用户中途加入或离开,那么其他用户监听器均会接收到 setVideoCallListener#onUserEnter 或 setVideoCallListener#onUserLeave 回调。
说明:
接口 groupCall 中的 groupId 参数是 IM SDK 中的群组Id,如果填写该参数,那么通话请求消息的信令消息是通过群 Id 发送出去的,这种消息广播方式比较简单可靠。如果不填写,那么 RY-TencentTrtcVideoCall 组件会采用单发消息逐一通知。
// 前面省略...
// 拼凑需要拨打的用户列表
var userIdList = [
'b',
'c',
'd'
]
// 如果您不是在一个 IM 群里发起的, groupId 可以传一个空串;
this.$refs.videoCall.groupCall({
userIdList: userIdList,
groupId: ''
}, ret => {
console.log(ret);
});
// 打开自己的摄像头
this.$refs.videoCall.openCamera({
isFront: true,
rect: {
x: 0,
y: 0,
w: self.playerWidth,
h: self.playerHeight
}
}, ret => {
console.log(ret);
});
更多功能
- 全局监听事件
- 离线推送
- 用户信息(头像、昵称等)
- 群组管理
扫码添加, 获取技术支持:
微信号: ruanyunkeji006