更新记录

5.8(2022-04-07)

更新iOS摄像头问题

5.7(2021-09-23)

处理iOS权限问题

5.6(2021-06-30)

更新文档

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 10.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 14

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择


一、插件使用流程(原生插件调试,都需要自定义基座,使用有问题请联系:18570024869)

1.配置插件

a.找到manifest.json,原生插件配置
b.勾选JY-TXRTC

2.引用原生插件

const jyrtc = uni.requireNativePlugin('JY-TXRTC');

二、SDK初始化,基础方法介绍

1.SDK初始化,请注意:后续相关的数据都是在此方法的result里面返回

initPlugin

jyrtc.initPlugin({
// //userid 联系我们获取userid
userid: '后台分配的userid'
}, result=> {
console.log(JSON.stringify(res));
uni.showToast({
icon:'none',
title: JSON.stringify(result)
})
});
result相关的回调类型

/*
100 进入房间回调

110 离开房间的回调

200 视频模式下的回调

300 音频模式下的回调

400 错误事件 */

##### 请注意:视频模式下,若收到了200的回调,则数据内部还会返回userId和available参数,分别代码加入视频房间的用户ID和是否加入(1是加入、0是退出),则应该调用remote相关的方法,进行视频的展示;
##### 请注意:音频模式下,若收到了300的回调,则数据内部还会返回userId和available参数,分别代码加入音频房间的用户ID和是否加入(1是加入、0是退出),则应该调用remote相关的方法,进行音频的展示;

##### 2.SDK注册相关方法,请注意:必须调用!!!
> registerFunc 

jyrtc.registerFunc(res=>{ console.log(JSON.stringify(res)); uni.showToast({ icon:'none', title: JSON.stringify(result) }) });


#### 三、其他相关方法
##### 1.进入房间,房间相关处理结果均在init方法里面返回
> jy_enterRoom

jyrtc.jy_enterRoom({ appId: "", roomId: "", userId: "", userSig: "", appScene: "", role: "" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 参数说明:
##### appId、roomId、userId、userSig为基础信息,必须填写
##### appScene代表使用场景,值为0:视频通话、1:视频互动直播、2:语音通话、3:语音互动直播
##### role为直播的时候,必须专递,1是主播,2是观众

##### 2.退出房间,房间相关处理结果均在init方法里面返回
> jy_enterRoom 

jyrtc.jy_exitRoom(result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 参数说明:
##### appId、roomId、userId、userSig为基础信息,必须填写
##### appScene代表使用场景,值为0:视频通话、1:视频互动直播、2:语音通话、3:语音互动直播;0、2是通话模式;1、3是直播模式
##### role为直播的时候,必须专递,1是主播,2是观众

##### 3.静音某个用户的音频
> jy_muteRemoteAudio 

jyrtc.jy_muteRemoteAudio({ userId: "需要静音用户的id", mute: "1是静音,0是取消静音" },result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 4.静音所有用户的音频
> jy_muteAllRemoteAudio 

jyrtc.jy_muteAllRemoteAudio({ mute: "1是静音,0是取消静音" },result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 5.屏蔽某个用户的视频
> jy_stopRemoteView 

jyrtc.jy_stopRemoteView({ userId: "需要屏蔽的用户id" },result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 6.屏蔽所有用户的视频
> jy_stopAllRemoteView 

jyrtc.jy_stopAllRemoteView(result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 7.暂停/恢复接收指定的远端视频流
> jy_muteRemoteVideoStream 

jyrtc.jy_muteRemoteVideoStream({ userId: "用户id", mute: "1是暂停,0是恢复" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 8.暂停/恢复所有的远端视频流
> jy_muteAllRemoteVideoStreams 

jyrtc.jy_muteAllRemoteVideoStreams({ userId: "用户id", mute: "1是暂停,0是恢复" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 9.美颜风格设置
> jy_setBeautyStyle 

jyrtc.jy_setBeautyStyle({ beautyStyle: "0:光滑、1:自然、2:光滑和自然之间" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 10.美颜等级设置
> jy_setBeautyLevel 

jyrtc.jy_setBeautyLevel({ beautyLevel: "美颜级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });


##### 11.美颜美白级别设置
> jy_setWhitenessLevel 

jyrtc.jy_setWhitenessLevel({ whitenessLevel: "美白级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 12.设置本地图像的渲染设置
> jy_setLocalRenderParams 

jyrtc.jy_setLocalRenderParams({ fillMode: "0:图像铺满屏蔽,超过视窗的被剪裁;1:图像长边填满屏幕,短边会是黑色", mirrorType: "0:前置摄像头镜像、后置不镜像;1:前后均镜像;2前后均不镜像", rotation: "0:不旋转;1:旋转90度;2:旋转180;3:旋转270" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 13. 设置视频编码器相关参数
> jy_setVideoEncoderParam 

jyrtc.jy_setVideoEncoderParam({ enableAdjustRes: "1:动态调整分辨率;0:不动态调整", videoResolution: "分辨率取值,见下", videoBitrate: "目标视频码率;比如 TRTCVideoResolution_1280_720 对应 1200kbps 的目标码率,您也可以设置为 1500kbps 用来获得更好的清晰度观感。", videoFps: "视频采集帧率;15fps或20fps,5fps以下,卡顿感明显。10fps以下,会有轻微卡顿感。20fps以上,则过于浪费(电影的帧率为24fps)。" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 分辨率

// 宽高比1:1 TRTCVideoResolution_120_120 = 1, ///< [C] 建议码率 VideoCall:80kbps LIVE:120kbps TRTCVideoResolution_160_160 = 3, ///< [C] 建议码率 VideoCall:100kbps LIVE:150kbps TRTCVideoResolution_270_270 = 5, ///< [C] 建议码率 VideoCall:200kbps LIVE:120kbps TRTCVideoResolution_480_480 = 7, ///< [C] 建议码率 VideoCall:350kbps LIVE:120kbps

// 宽高比4:3 TRTCVideoResolution_160_120 = 50, ///< [C] 建议码率 VideoCall:100kbps LIVE:150kbps TRTCVideoResolution_240_180 = 52, ///< [C] 建议码率 VideoCall:150kbps LIVE:225kbps TRTCVideoResolution_280_210 = 54, ///< [C] 建议码率 VideoCall:200kbps LIVE:300kbps TRTCVideoResolution_320_240 = 56, ///< [C] 建议码率 VideoCall:250kbps LIVE:375kbps TRTCVideoResolution_400_300 = 58, ///< [C] 建议码率 VideoCall:300kbps LIVE:450kbps TRTCVideoResolution_480_360 = 60, ///< [C] 建议码率 VideoCall:400kbps LIVE:600kbps TRTCVideoResolution_640_480 = 62, ///< [C] 建议码率 VideoCall:600kbps LIVE:900kbps TRTCVideoResolution_960_720 = 64, ///< [C] 建议码率 VideoCall:1000kbps LIVE:1500kbps

// 宽高比16:9 TRTCVideoResolution_160_90 = 100, ///< [C] 建议码率 VideoCall:150kbps LIVE:250kbps TRTCVideoResolution_256_144 = 102, ///< [C] 建议码率 VideoCall:200kbps LIVE:300kbps TRTCVideoResolution_320_180 = 104, ///< [C] 建议码率 VideoCall:250kbps LIVE:400kbps TRTCVideoResolution_480_270 = 106, ///< [C] 建议码率 VideoCall:350kbps LIVE:550kbps TRTCVideoResolution_640_360 = 108, ///< [C] 建议码率 VideoCall:550kbps LIVE:900kbps TRTCVideoResolution_960_540 = 110, ///< [C] 建议码率 VideoCall:850kbps LIVE:1300kbps TRTCVideoResolution_1280_720 = 112, ///< [C] 建议码率 VideoCall:1200kbps LIVE:1800kbps TRTCVideoResolution_1920_1080 = 114, ///< [S] 建议码率 VideoCall:2000kbps LIVE:3000kbps


#### 四、视频通话(通话模式,当appScene为0时有效,视频通话)
#### 插件引入方式如下:必须是NVUE页面
#### 其中JY_TXRTCLComponent为本地预览视图;JY_TXRTCRComponent远程直播视图,请不要用错了

##### 4.1开启本地视频预览(摄像头),JY_TXRTCLComponent
> startLocalPreview 

this.$refs.LocalView.startLocalPreview({ frontCamera: "1是前置摄像头,0是后置摄像头" });

##### 4.2停止本地视频预览,JY_TXRTCLComponent
> startLocalPreview 

this.$refs.LocalView.stopLocalPreview();

##### 4.3开启本地音频预览(麦克风),JY_TXRTCLComponent
> startLocalAudio 

this.$refs.LocalView.startLocalAudio({ quality: "音频质量,1是流畅单声道;2是默认单声道;3是高品质双声道" })

##### 4.4停止本地音频预览,JY_TXRTCLComponent
> stopLocalAudio 

this.$refs.LocalView.stopLocalAudio();

##### 4.5开启远程视频预览,JY_TXRTCRComponent
> startRemoteView 

this.$refs.RemoteView.startRemoteView({ userId: "需要开启的userId;应该是在init方法里面收到相关的回调的时候,开启" })

##### 4.6关闭远程视频预览,JY_TXRTCRComponent
> stopRemoteView 

this.$refs.RemoteView.stopRemoteView({ userId: "需要关闭的userId;应该是在init方法里面收到相关的回调的时候,开启" })


#### 五、语音通话(通话模式,当appScene为2时有效,语音通话)
#### 插件引入方式如下:NVUE、VUE均可
##### 5.1开启本地音频预览(麦克风)
> jy_startLocalAudio 

jyrtc.jy_startLocalAudio({ quality: "音频质量,1是流畅单声道;2是默认单声道;3是高品质双声道" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 5.2停止本地音频预览
> jy_stopLocalAudio 

jyrtc.jy_stopLocalAudio(result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });


#### 六、视频直播(直播模式,当appScene为1时有效,视频直播)
#### 插件引入方式如下:必须是NVUE页面
#### 其中JY_TXRTCLiveLComponent为本地预览视图;JY_TXRTCLiveRComponent远程直播视图,请不要用错了

##### 6.1开启本地视频预览(摄像头)
> startLocalPreview 

this.$refs.LocalView.startLocalPreview({ frontCamera: "1是前置摄像头,0是后置摄像头" });

##### 6.2停止本地视频预览
> startLocalPreview 

this.$refs.LocalView.stopLocalPreview();

##### 6.3开启本地音频预览(麦克风)
> startLocalAudio 

this.$refs.LocalView.startLocalAudio({ quality: "音频质量,1是流畅单声道;2是默认单声道;3是高品质双声道" })

##### 6.4停止本地音频预览
> stopLocalAudio 

this.$refs.LocalView.stopLocalAudio();

##### 6.5观众上麦 只适用于JY_TXRTCLiveRComponent;改方法进行了拆分,请自己调用JY_TXRTCLiveRComponent的startLocalPreview和startLocalAudio,参数保持一致
> switchRoleAnchor 

this.$refs.RemoteView.switchRoleAnchor({ Quality: "1", frontCamera: "1" })

##### 6.6观众下麦 只适用于JY_TXRTCLiveRComponent
> switchRoleAudience 

this.$refs.RemoteView.switchRoleAudience({ })

##### 6.7开启远程视频预览,JY_TXRTCLiveRComponent
> startRemoteView 

this.$refs.RemoteView.startRemoteView({ userId: "需要开启的userId;应该是在init方法里面收到相关的回调的时候,开启" })

##### 6.8关闭远程视频预览,JY_TXRTCLiveRComponent
> stopRemoteView 

this.$refs.RemoteView.stopRemoteView({ userId: "需要关闭的userId;应该是在init方法里面收到相关的回调的时候,开启" })


#### 七、视频直播(直播模式,当appScene为3时有效,音频直播)
#### 插件引入方式如下:NVUE、VUE均可
##### 7.1开启本地音频预览(麦克风)
> jy_startLocalAudio 

jyrtc.jy_startLocalAudio({ quality: "音频质量,1是流畅单声道;2是默认单声道;3是高品质双声道" }, result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

##### 7.2停止本地音频预览
> jy_stopLocalAudio 

jyrtc.jy_stopLocalAudio(result=> { uni.showToast({ icon:'none', title: JSON.stringify(result) }) });

隐私、权限声明

1. 本插件需要申请的系统权限列表:

摄像头 录音

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 trtc SDK会采集数据,详情可参考:https://cloud.tencent.com/document/product/647/46252

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

作者未提供license.md

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问