更新记录
0.8.1(2021-03-15)
修改隐私权限说明
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 11.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
腾讯云视频语音通话
接入腾讯云TRTC服务, 可以实现视频语音通话, 支持视频通话和语音通话, 适用多人、双人视频语音模式、直播, 网络会议、在线医疗、视频客服、金融双录等场景。
快速开始
开通腾讯云RTC服务
获取sdkAppId和生成userSig
基础使用
新建nvue文件,注意该模块必须在nvue中使用 模块名称为: zy-rtcVideo,使用标签
template部分
<!--显示本地, 不需要传递userid-->
<zy-rtcVideo ref="my"></zy-rtcVideo>
<!--显示对方, 可以传递userid, 该组件会自动显示对方视频和语音 -->
<zy-rtcVideo ref="you" v-if="userid!=''" :userid="userid"></zy-rtcVideo>
引入组件
const tcrtc = uni.requireNativePlugin("zy-tcrtc");
初始化
tcrtc.init({
sdkAppId:"xxxxxx",
userId:"xxxxxx",
userSig:"xxxxxx"
},(doc)=>{
//回调, 所有的事件通知都在此处
this.videoCB(doc);
});
- 回调方法
videoCB(doc){ switch(doc.type){ case "onUserVideoAvailable"://新用户加入 this.userid = doc.data; break; case "onUserVideoAvailableExit"://用户退出 this.userid = ""; break; } },
房间操作
enterRoom() {
tcrtc.enterRoom(908);
//使用前请获取硬件权限
this.$refs.my.startLocalPreview(true);//开启本地视频
this.$refs.my.startLocalAudio();//开启本地语音
},
extRoom() {
tcrtc.exitRoom();//退出房间
},
获取硬件权限
getPermiss() {
plus.android.requestPermissions(
['android.permission.CAMERA','android.permission.RECORD_AUDIO'],
function(e) {
if (e.deniedAlways.length > 0) {
//权限被永久拒绝
// 弹出提示框解释为何需要权限,引导用户打开设置页面开启
console.log('权限被永久拒绝' + e.deniedAlways.toString());
}
if (e.deniedPresent.length > 0) {
//权限被临时拒绝
// 弹出提示框解释为何需要权限,可再次调用plus.android.requestPermissions申请权限
console.log('权限被临时拒绝' + e.deniedPresent.toString());
}
if (e.granted.length > 0) {
//权限被允许
console.log('权限被允许' + e.granted.toString());
}
},
function(e) {
console.log('Request Permissions error:' + JSON.stringify(e));
}
);
},
zy-tcrtc包含方法
init(option, callback)
表头 | 表头 |
---|---|
option | 腾讯云rtc配置, 包含sdkAppId,userId,userSig |
callback | 接收事件通知的方法 |
tcrtc.init({
sdkAppId:"xxxxxx",
userId:"xxxxxx",
userSig:"xxxxxx"
},(doc)=>{
//回调, 所有的事件通知都在此处
this.videoCB(doc);
});
enterRoom(roomid) 进入房间
参数 | 说明 |
---|---|
roomid | 房间号 |
tcrtc.enterRoom(908);
exitRoom() 退出房间
tcrtc.exitRoom();//退出房间
zy-rtcVideo包含方法
startLocalPreview(frontCamera)
开启摄像头预览 在 enterRoom 之前调用此函数,SDK 只会开启摄像头,并一直等到您调用 enterRoom 之后才开始推流。 在 enterRoom 之后调用此函数,SDK 会开启摄像头并自动开始视频推流。 当开始渲染首帧摄像头画面时,您会收到 TRTCCloudListener 中的 onFirstVideoFrame(null) 回调。
参数 | 说明 |
---|---|
frontCamera | true:前置摄像头,false:后置摄像头 |
this.$refs.my.startLocalPreview(true);//开启本地视频
startLocalAudio()
开启本地音频的采集和上行
SDK 默认不采集声音,您需要调用该函数启动麦克风采集,并将音频数据传输给房间里的其他用户。
this.$refs.my.startLocalAudio();//开启本地视频
startRemotePreview()
开始拉取并显示指定用户的远端画面 该方法会在传递userid的时候自动调用, 也可以主动调用
-
该函数会拉取指定 userid 的视频流显示在您指定的 view 控件上,您可以通过 setRemoteRenderParams 设置显示模式。
-
如果您提前知道房间中某个 userid 正在推流,可以直接调用 startRemoteView 显示该用户的远端画面。
-
如果您不知道房间中有哪些用户开启了视频,可以在 enterRoom 后等待来自 SDK 的 onUserVideoAvailable(userId, true) 回调通知。 调用 startRemoteView 只是启动拉取,此时画面还需要加载,当加载完毕后 TRTCCloudListener 会通过 onFirstVideoFrame(userId) 通知您。