orionos-extension-trtc
最低版本: 1.0.9最后更新: 2020/8/11组件功能:
orionos-extension-trtc 用于支持视频通话功能
TRTC SDK官方文档链接:http://doc.qcloudtrtc.com/index.html
TRTC SDK版本: 7.5.9307
注意事项:
安装方式: npm install orionos-extension-trtc
安装完成后,将在工程目录下的 extraResource/ 中生成libs 目录;
libs目录是 debug 和 生成opk 的必要文件,请勿随意操作该目录。
支持平台:
平台 | 是否支持 |
豹小秘 | 否 |
豹花/大瓶 | 否 |
M平台 | 是 |
更新日志
版本号 | 更新内容 |
1.0.0 | TRTC SDK组件第一版; SDK-Version:7.4.9200 |
1.0.2 | 新增module function setVideoEncoderRotation() |
1.0.4 | 移除event callback onUserAudioAvailable |
1.0.5 | 新增module function setZoom() |
1.0.7 | 新增view props:encoderRotation、isFrontCamera 新增module function:setVideoEncoderMirror() |
1.0.8 | 功能扩展; 更新SDK-version:7.5.9307; |
1.0.9 | fix event callback null exception; fix camera switch collapse; |
参数
属性 | JS 类型 | Java类型 | 默认值 | 必填 | 说明 | 最低版本 |
trtcParams | TRTCParams | ReadableMap | 无 | yes | LocalView参数:TRTC参数 | 1.0.0 |
beautyParams | BeautyParams | ReadableMap | 无 | no | LocalView参数:美颜参数 | 1.0.0 |
videoParams | VideoParams | ReadableMap | 无 | no | LocalView参数:视频编码参数 | 1.0.0 |
remoteParams | RemoteTRTCParams | ReadableMap | 无 | yes | remoteView参数:远程视频源参数 | 1.0.0 |
rotation | number | int | 0 | no | 通用参数:视图旋转角度,顺时针旋转角度 参考值:TRTC_VIDEO_ROTATION_0 | 1.0.0 |
mode | number | int | 0 | no | 通用参数:填充或适应模式 参考值:TRTC_VIDEO_RENDER_MODE_FILL | 1.0.0 |
encoderRotation | number | int | 0 | no | LocalView参数:视频编码输出的画面方向 顺时针旋转角度,目前仅支持0度和180度两个角度 参考值:TRTC_VIDEO_ROTATION_0 | 1.0.7 |
isFrontCamera | boolean | boolean | true | no | LocalView参数:是否为前置摄像头; true:前置摄像头,广角(默认) false:后置摄像头,高清; | 1.0.7 |
mirror | boolean | boolean | false | no | LocalView参数:编码器输出的画面镜像模式 true:镜像; false:不镜像(默认值); | 1.0.8 |
TRTCParams
属性 | JS 类型 | Java类型 | 默认值 | 必填 | 说明 | 最低版本 |
sdkAppId | number | int | 无 | yes | 应用标识,腾讯视频云基于 sdkAppId 进行计费统计。 在 实时音视频控制台 创建应用后可以在账号信息页面中得到该 ID。 | 1.0.0 |
userId | string | String | 无 | yes | 用户标识,当前用户的 userId,相当于用户名。 限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。 | 1.0.0 |
roomId | number | int | 无 | yes | 房间号码,在同一个房间里的用户(userId)可以彼此看到对方并进行视频通话。 取值范围:1 - 4294967294。 | 1.0.0 |
userSig | string | String | 无 | yes | 用户签名,当前 userId 对应的验证签名,相当于使用云服务的登录密码。 | 1.0.0 |
privateMapKey | string | String | 无 | no | 房间签名,当您希望某个房间只能让特定的 userId 进入时,可使用privateMapKey 进行权限保护。 | 1.0.0 |
BeautyParams
属性 | JS 类型 | Java类型 | 默认值 | 必填 | 说明 | 最低版本 |
beautyStyle | number | int | 无 | no | 美颜风格;三种美颜风格: 0:光滑 TRTC_BEAUTY_STYLE_SMOOTH 1:自然 TRTC_BEAUTY_STYLE_NATURE 2:朦胧 TRTC_BEAUTY_STYLE_HAZY | 1.0.0 |
beautyLevel | number | int | 无 | no | 美颜级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。 | 1.0.0 |
whitenessLevel | number | int | 无 | no | 美白级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。 | 1.0.0 |
ruddinessLevel | number | int | 无 | no | 红润级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。 | 1.0.0 |
VideoParams
属性 | JS 类型 | Java类型 | 默认值 | 必填 | 说明 | 最低版本 |
videoResolution | number | int | TRTC_VIDEO_RESOLUTION_640_360 | no | 视频分辨率; 【推荐取值】视频通话建议选择360 × 640及以下分辨率,resMode 选择 Portrait。 | 1.0.0 |
videoResolutionMode | number | int | TRTC_VIDEO_RESOLUTION_MODE_PORTRAIT | no | 分辨率模式 (横屏分辨率/ 竖屏分辨率) | 1.0.0 |
videoFps | number | int | 15 | no | 视频采集帧率 | 1.0.0 |
videoBitrate | number | int | 550 | no | 目标视频码率; SDK 会按照目标码率进行编码,只有在网络不佳的情况下才会主动降低视频码率。 | 1.0.0 |
minVideoBitrate | number | int | 无 | no | 最低视频码率; SDK 会在网络不佳的情况下主动降低视频码率,最低会降至 minVideoBitrate 所设定的数值。 | 1.0.0 |
enableAdjustRes | boolean | boolean | false | no | 是否允许调整分辨率 | 1.0.0 |
RemoteTRTCParams
属性 | JS 类型 | Java类型 | 默认值 | 必填 | 说明 | 最低版本 |
userId | string | String | 无 | yes | 用户标识,远端用户的 userId,相当于用户名。 限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。 | 1.0.0 |
方法:
LocalView Apis
方法名 | 参数 | JS类型 | Java类型 | 必填 | 参数说明 | 方法说明 | 最低版本 |
switchCamera | 无 | 无 | 无 | 无 | 无 | 切换前后置摄像头:[默认使用前置] | 1.0.0 |
setLocalViewRotation | rotation | number | int | yes | 顺时针旋转角度 0 不旋转(默认值)TRTC_VIDEO_ROTATION_0 1 90度 TRTC_VIDEO_ROTATION_90 2 180度 TRTC_VIDEO_ROTATION_180 3 270度 TRTC_VIDEO_ROTATION_270 | 设置本地图像的顺时针旋转角度 | 1.0.0 |
setLocalViewFillMode | mode | number | int | yes | 填充或适应模式 0 填充(默认值) TRTC_VIDEO_RENDER_MODE_FILL 1 适应 TRTC_VIDEO_RENDER_MODE_FIT | 设置本地图像的渲染模式 | 1.0.0 |
muteLocalVideo | mute | boolean | boolean | yes | true:暂停;false:恢复 | 暂停/恢复推送本地的视频数据 | 1.0.0 |
muteLocalAudio | mute | boolean | boolean | yes | true:静音;false:取消静音 | 静音/取消静音本地的音频 | 1.0.0 |
setVideoEncoderRotation | rotation | number | int | yes | 顺时针旋转角度 目前仅支持0度和180度两个角度: 0 不旋转(默认值)TRTC_VIDEO_ROTATION_0 2 180度 TRTC_VIDEO_ROTATION_180 | 设置视频编码输出的画面方向 即设置服务器录制的和远端用户观看到的画面方向 | 1.0.2 |
setZoom | distance | number | int | yes | 取值范围为1 - 5,数值越大,焦距越远 1 表示最远视角(正常镜头) 5 表示最近视角(放大镜头) | 设置摄像头缩放因子(焦距) | 1.0.5 |
setVideoEncoderMirror | mirror | boolean | boolean | yes | true:镜像; false:不镜像; | 设置编码器输出的画面镜像模式,默认不设置镜像 | 1.0.7 |
enableAudioVolumeEvaluation | intervalMs | number | int | yes | onUserVoiceVolume 回调的触发间隔, 单位为ms,最小间隔为100ms; 小于等于0则会关闭回调,建议设置为300ms | 启用音量大小提示,在 startLocalAudio() 之前调用 | 1.0.8 |
setExposureCompensation | value | number | int | yes | 曝光值; 取值范围:[-12,12],数值越大,曝光越强 | 设置曝光 | 1.0.8 |
setVideoStabilization | enable | boolean | boolean | yes | true:开启;false:不开启 | 设置是否开启防抖 | 1.0.8 |
RemoteView Apis
方法名 | 参数 | JS类型 | Java类型 | 必填 | 参数说明 | 方法说明 | 最低版本 |
setRemoteViewRotation | useId | string | String | yes | 远端用户ID | 设置远端图像的顺时针旋转角度 | 1.0.0 |
rotation | number | int | yes | 顺时针旋转角度 0 不旋转(默认值)TRTC_VIDEO_ROTATION_0 1 90度 TRTC_VIDEO_ROTATION_90 2 180度 TRTC_VIDEO_ROTATION_180 3 270度 TRTC_VIDEO_ROTATION_270 | |||
setRemoteViewFillMode | useId | string | String | yes | 远端用户ID | 设置远端图像的渲染模式 | 1.0.0 |
mode | number | int | yes | 填充或适应模式 0 填充(默认值) TRTC_VIDEO_RENDER_MODE_FILL 1 适应 TRTC_VIDEO_RENDER_MODE_FIT | |||
muteRemoteVideoStream | useId | string | String | yes | 远端用户ID | 暂停/恢复接收指定的远端视频流(不释放显示资源) | 1.0.0 |
mute | boolean | boolean | yes | true:暂停;false:恢复 | |||
muteAllRemoteVideoStreams | mute | boolean | boolean | yes | true:暂停;false:恢复 | 暂停/恢复接收所有远端视频流(不释放显示资源) | 1.0.0 |
setRemoteAudioVolume | useId | string | String | yes | 远端用户ID | 设置某个远端用户的播放音量 | 1.0.0 |
volume | number | int | yes | 音量大小,取值0 - 100 | |||
muteRemoteAudio | useId | string | String | yes | 远端用户ID; | 静音/取消静音指定的远端用户的声音 | 1.0.0 |
mute | boolean | boolean | yes | true:暂停;false:恢复 | |||
muteAllRemoteAudio | mute | boolean | boolean | yes | true:静音;false:取消静音 | 静音/取消静音所有远端用户的声音 | 1.0.0 |
DebugView Api
方法名 | 参数 | JS类型 | Java类型 | 必填 | 参数说明 | 方法说明 | 最低版本 |
showDebugView | 无 | 无 | 无 | 无 | 无 | 显示debug仪表盘 | 1.0.0 |
Log Apis
方法名 | 参数 | JS类型 | Java类型 | 必填 | 参数说明 | 方法说明 | 最低版本 |
setLogLevel | level | number | int | yes | Log 输出级别 6 不输出(默认值) 5 输出 FATAL 4 输出 ERROR 和 FATAL 3 输出 WARNING,ERROR 和 FATAL 2 输出 INFO,WARNING,ERROR 和 FATAL 1 输出 DEBUG,INFO,WARNING,ERROR 和 FATAL 0 输出所有 | 设置 Log 输出级别 | 1.0.0 |
setConsoleEnabled | enabled | boolean | boolean | yes | 指定是否启用 true 启用; false 禁止(默认) | 启用或禁用控制台日志打印 | 1.0.0 |
setLogCompressEnabled | enabled | boolean | boolean | yes | 指定是否启用 true 启用(默认);log存储体积明显减小,需腾讯云提供的Python脚本解压后才能阅读; false 禁止;log采用明文存储,可以直接用记事本打开阅读,但占用空间较大。 | 启用或禁用 Log 的本地压缩 | 1.0.0 |
setLogDirPath | path | string | String | yes | 自定义日志存储路径; 默认路径: /app私有目录/files/log/tencent/liteav/ 下 | 修改日志保存路径 【注意】如需修改, 必须在所有方法前调用,并且保证目录存在及应用有目录的读写权限。 | 1.0.0 |
SpeedTest Apis
方法名 | 参数 | JS类型 | Java类型 | 必填 | 参数说明 | 方法说明 | 最低版本 |
startSpeedTest | sdkAppId | number | int | yes | 应用标识 | 开始进行网络测速, 测试结果通过 TRTCCloudListener.onSpeedTest 回调 | 1.0.8 |
userId | string | String | yes | 用户标识 | |||
secretKey | string | String | yes | 用户签名 | |||
stopSpeedTest | 无 | 无 | 无 | 无 | 无 | 停止服务器测速 | 1.0.8 |
CustomMsg Apis
方法名 | 参数 | JS类型 | Java类型 | 必填 | 参数说明 | 方法说明 | 最低版本 |
sendCustomCmdMsg | cmdID | number | int | yes | 消息 ID,取值范围为1 - 10 | 发送自定义消息给房间内所有用户 | 1.0.8 |
data | string | String | yes | 待发送的消息,最大支持1KB(1000字节)的数据大小 | |||
reliableOrdered | boolean | boolean | yes | 是否可靠有序发送; 会引入一定的延时,因为接收端要暂存并排序这些消息。 | |||
promise | Promise | Promise <boolean> | yes | / | |||
sendSEIMsg | data | string | String | yes | 待发送的数据,最大支持1kb(1000字节)的数据大小 | 将小数据量的自定义数据嵌入视频帧中 | 1.0.8 |
repeatCount | number | int | yes | 发送数据次数 | |||
promise | Promise | Promise <boolean> | yes | / |
SDK Event 回调:
方法名 | 参数 | JS类型 | Java类型 | 必填 | 参数说明 | 方法说明 | 最低版本 |
onEnterRoom | result | number | int | yes | enterRoom() 接口执行结果 正值 进房成功; 负值 进房失败;同时会有 onError() 回调抛出。 | 已加入房间的事件回调; 调用 TRTCCloud 中的 enterRoom() 接口执行进房操作后,会收到来自 SDK 的 onEnterRoom(result) 回调。 | 1.0.0 |
onExitRoom | reason | number | int | yes | 离开房间原因; 0:主动调用 exitRoom 退房; 1:被服务器踢出当前房间; 2:当前房间整个被解散。 | 离开房间的事件回调; 调用 TRTCCloud 中的 exitRoom() 接口会执行退出房间的相关逻辑; | |
onRemoteUserEnterRoom | userId | string | String | yes | 远端用户标识 | 有用户加入当前房间事件回调 | 1.0.0 |
onRemoteUserLeaveRoom | userId | string | String | yes | 远端用户标识 | 有用户离开当前房间事件回调 | 1.0.0 |
reason | number | int | yes | 离开原因;0表示用户主动退出房间,1表示用户超时退出,2表示被踢出房间。 | |||
onUserVideoAvailable | userId | string | String | yes | 远端用户标识 | 远端用户是否存在可播放的主路画面(一般用于摄像头)回调 | 1.0.0 |
available | boolean | boolean | yes | 画面是否开启 true 表示该路画面已经有可用的视频数据帧到达。此时可加载该用户远程画面。 false 表示该路远程画面已经被关闭,可能由于该用户调用 muteLocalVideo() 或 stopLocalPreview()。 | |||
onUserAudioAvailable | userId | string | String | yes | 远端用户标识 | 远端用户是否存在可播放的音频数据回调 | 1.0.0 |
available | boolean | boolean | yes | 声音是否开启 | 1.0.4移除 | ||
onError | errCode | number | int | yes | 错误码 | 错误回调,意味着 SDK 不可恢复的错误。 【注意】请务必监听并分情况给用户适当的界面提示。 | 1.0.0 |
errMsg | string | String | yes | 错误信息 | |||
extraInfo | any | Bundle | yes | 扩展信息字段,个别错误码可能会带额外的信息帮助定位问题. | |||
onCameraDidReady | 无 | 无 | 无 | 无 | 无 | 1.0.8 | |
onSpeedTest | currentResult | Map<any, any> | WritableMap | yes | 当前完成的测速结果,包括: 服务器 IP 地址; 网络质量; 上行丢包率,范围是0 - 1.0; 下行丢包率,范围是0 - 1.0; 延迟(毫秒); | 服务器测速的回调,SDK 对多个服务器 IP 做测速,每个 IP 的测速结果通过这个回调通知 | 1.0.8 |
finishedCount | number | int | yes | 已完成测速的服务器数量 | |||
totalCount | number | int | yes | 需要测速的服务器总数量 | |||
onFirstVideoFrame | userId | string | String | yes | 本地或远程用户 ID; null,代表开始渲染本地采集的摄像头画面,先调用startLocalPreview 触发; 不为 null,代表开始渲染远程用户的首帧画面,需要您先调用 startRemoteView 触发 | 开始渲染本地或远程用户的首帧画面 | 1.0.8 |
streamType | number | int | yes | 视频流类型:摄像头或屏幕分享。 | |||
width | number | int | yes | 画面宽度 | |||
height | number | int | yes | 画面高度 | |||
onSendFirstLocalVideoFrame | streamType | number | int | yes | 视频流类型,大画面、小画面或辅流画面(屏幕分享) | 首帧本地视频数据已经被送出 | 1.0.8 |
onRecvCustomCmdMsg | userId | string | String | yes | 用户标识 | 收到自定义消息回调 | 1.0.8 |
cmdID | number | int | yes | 数据流 ID | |||
seq | number | int | yes | 消息序号 | |||
message | string | String | yes | 消息数据 | |||
onMissCustomCmdMsg | userId | string | String | yes | 用户标识 | 自定义消息丢失回调 | 1.0.8 |
cmdID | number | int | yes | 数据流 ID | |||
errCode | number | int | yes | 错误码,当前版本为-1 | |||
missed | number | int | yes | 丢失的消息数量 | |||
onRecvSEIMsg | userId | string | String | yes | 用户标识 | 收到 SEI 消息的回调 | 1.0.8 |
data | string | String | yes | 数据 | |||
onUserVoiceVolume | userVolumes | any[] | WritableArray | yes | 所有正在说话的房间成员的音量,取值范围0 - 100 | 提示音量大小的回调,包括每个 userId 的音量和远端总音量 | 1.0.8 |
totalVolum | number | int | yes | 所有远端成员的总音量, 取值范围0 - 100 | |||
onNetworkQuality | localQuality | string | String | yes | 上行网络质量 | 网络质量,该回调每2秒触发一次,统计当前网络的上行和下行质量 | 1.0.8 |
remoteQuality | any[] | WritableArray | yes | 下行网络质量 | |||
onStatistics | appCpu | string | String | yes | 当前 App 的 CPU 使用率(%) | 技术指标统计回调 | 1.0.8 |
systemCpu | number | int | yes | 当前系统的 CPU 使用率(%) | |||
rtt | number | int | yes | 延迟(毫秒,一般低于50ms的 rtt 相对理想 | |||
upLoss | number | int | yes | C -> S 上行丢包率(%),越小越好 | |||
downLoss | number | int | yes | S -> C 下行丢包率(%),越小越好 | |||
sendBytes | number | int | yes | 发送字节总数 | |||
receiveBytes | number | int | yes | 接收字节总数 | |||
remoteArray | string | String | yes | 远端成员的音视频统计信息 | |||
onConnectionLost | 无 | 无 | 无 | 无 | 无 | SDK 跟服务器的连接断开 | 1.0.8 |
onTryToReconnect | 无 | 无 | 无 | 无 | 无 | SDK 尝试重新连接到服务器 | 1.0.8 |
onConnectionRecovery | 无 | 无 | 无 | 无 | 无 | SDK 跟服务器的连接恢复 | 1.0.8 |
示例代码:
LocalView
import { RTCView } from './TRC';
<RTCView
trtcParams={{
sdkAppId: this.sdkAppId,
userId: this.userId,
roomId: this.roomId,
userSig: this.userSig,
privateMapKey:this.privateMapKey,
}}
beautyParams={{
beautyStyle: TRTC.TRTC_BEAUTY_STYLE_SMOOTH,
beautyLevel: 2,
whitenessLevel: 5,
ruddinessLevel: 3,
}}
videoParams={{
videoResolution: TRTC.TRTC_VIDEO_RESOLUTION_640_360,
videoResolutionMode: TRTC.TRTC_VIDEO_RESOLUTION_MODE_PORTRAIT;
videoFps: 15;
videoBitrate: 550;
minVideoBitrate: number;
enableAdjustRes: true;
}}
rotation={this.state.lRotation}
mode={this.state.lMode}
onRemoteUserEnterRoom={this.onRemoteUserEnterRoom}
onRemoteUserLeaveRoom={this.onRemoteUserLeaveRoom}
onEnterRoom={this.onEnterRoom}
onExitRoom={this.onExitRoom}
onUserVideoAvailable={this.onUserVideoAvailable}
onUserAudioAvailable={this.onUserAudioAvailable}
onError={this.onError}
/>
RemoteView
import { RTCView } from './TRC';
//remoteView
<RTCView
remoteParams={{
userId: userId
}}
rotation={this.state.rRotation}
mode={this.state.rMode}
/>
TRTC
import { TRTC } from './TRC';
private _testApiSwitchCamera():void{
TRTC.switchCamera();
}
private _testApiSetLocalViewRotation():void{
TRTC.setLocalViewRotation(TRTC.TRTC_VIDEO_ROTATION_90);
}