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类型默认值必填说明最低版本
trtcParamsTRTCParamsReadableMapyesLocalView参数:TRTC参数1.0.0
beautyParamsBeautyParamsReadableMapnoLocalView参数:美颜参数1.0.0
videoParamsVideoParamsReadableMapnoLocalView参数:视频编码参数1.0.0
remoteParamsRemoteTRTCParamsReadableMapyesremoteView参数:远程视频源参数1.0.0
rotationnumberint0no

通用参数:视图旋转角度,顺时针旋转角度 

参考值:TRTC_VIDEO_ROTATION_0

1.0.0
modenumberint0no

通用参数:填充或适应模式

参考值:TRTC_VIDEO_RENDER_MODE_FILL

1.0.0
encoderRotationnumberint0no

LocalView参数:视频编码输出的画面方向

顺时针旋转角度,目前仅支持0度和180度两个角度

参考值:TRTC_VIDEO_ROTATION_0

1.0.7
isFrontCamerabooleanbooleantrueno

LocalView参数:是否为前置摄像头;

true:前置摄像头,广角(默认)

false:后置摄像头,高清;

1.0.7
mirrorbooleanbooleanfalseno

LocalView参数:编码器输出的画面镜像模式

true:镜像;

false:不镜像(默认值);

1.0.8

TRTCParams

属性JS 类型Java类型默认值必填说明最低版本
sdkAppIdnumberintyes

应用标识,腾讯视频云基于 sdkAppId 进行计费统计。

在 实时音视频控制台 创建应用后可以在账号信息页面中得到该 ID。

1.0.0
userIdstringStringyes

用户标识,当前用户的 userId,相当于用户名。

限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。

1.0.0
roomIdnumberintyes

房间号码,在同一个房间里的用户(userId)可以彼此看到对方并进行视频通话。

取值范围:1 - 4294967294。

1.0.0
userSigstringStringyes用户签名,当前 userId 对应的验证签名,相当于使用云服务的登录密码。1.0.0
privateMapKeystringStringno房间签名,当您希望某个房间只能让特定的 userId 进入时,可使用privateMapKey 进行权限保护。1.0.0

BeautyParams

属性JS 类型Java类型默认值必填说明最低版本
beautyStylenumberintno

美颜风格;三种美颜风格:

0:光滑 TRTC_BEAUTY_STYLE_SMOOTH

1:自然 TRTC_BEAUTY_STYLE_NATURE

2:朦胧 TRTC_BEAUTY_STYLE_HAZY

1.0.0
beautyLevelnumberintno美颜级别,取值范围0 - 9;0表示关闭,1 - 9值越大,效果越明显。1.0.0
whitenessLevelnumberintno美白级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。1.0.0
ruddinessLevelnumberintno红润级别,取值范围0 - 9; 0表示关闭,1 - 9值越大,效果越明显。1.0.0

VideoParams

属性JS 类型Java类型默认值必填说明最低版本
videoResolutionnumberintTRTC_VIDEO_RESOLUTION_640_360no

视频分辨率;

【推荐取值】视频通话建议选择360 × 640及以下分辨率,resMode 选择 Portrait。

1.0.0
videoResolutionModenumberintTRTC_VIDEO_RESOLUTION_MODE_PORTRAITno

分辨率模式

(横屏分辨率/ 竖屏分辨率)

1.0.0
videoFpsnumberint15no视频采集帧率1.0.0
videoBitratenumberint550no

目标视频码率;

SDK 会按照目标码率进行编码,只有在网络不佳的情况下才会主动降低视频码率。

1.0.0
minVideoBitratenumberintno

最低视频码率;

SDK 会在网络不佳的情况下主动降低视频码率,最低会降至 minVideoBitrate 所设定的数值。

1.0.0
enableAdjustResbooleanbooleanfalseno是否允许调整分辨率1.0.0

RemoteTRTCParams

属性JS 类型Java类型默认值必填说明最低版本
userIdstringStringyes

用户标识,远端用户的 userId,相当于用户名。

限制长度为32字节,只允许包含大小写英文字母(a-zA-Z)、数字(0-9)及下划线和连词符。

1.0.0


 

方法:

LocalView Apis

方法名参数JS类型Java类型必填参数说明方法说明最低版本
switchCamera切换前后置摄像头:[默认使用前置]1.0.0
setLocalViewRotationrotationnumberintyes

顺时针旋转角度 

            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
setLocalViewFillModemodenumberintyes

填充或适应模式

             0 填充(默认值) TRTC_VIDEO_RENDER_MODE_FILL

             1 适应        TRTC_VIDEO_RENDER_MODE_FIT

设置本地图像的渲染模式1.0.0
muteLocalVideomutebooleanbooleanyestrue:暂停;false:恢复暂停/恢复推送本地的视频数据1.0.0
muteLocalAudiomutebooleanbooleanyestrue:静音;false:取消静音静音/取消静音本地的音频1.0.0
setVideoEncoderRotationrotationnumberintyes

顺时针旋转角度

目前仅支持0度和180度两个角度:

0 不旋转(默认值)TRTC_VIDEO_ROTATION_0

2 180度 TRTC_VIDEO_ROTATION_180

设置视频编码输出的画面方向

即设置服务器录制的和远端用户观看到的画面方向

1.0.2
setZoomdistancenumberintyes

取值范围为1 - 5,数值越大,焦距越远

1 表示最远视角(正常镜头)

5 表示最近视角(放大镜头)

设置摄像头缩放因子(焦距)1.0.5
setVideoEncoderMirrormirrorbooleanbooleanyes

true:镜像;

false:不镜像;

设置编码器输出的画面镜像模式,默认不设置镜像1.0.7
enableAudioVolumeEvaluationintervalMsnumberintyes

onUserVoiceVolume 回调的触发间隔, 单位为ms,最小间隔为100ms;

小于等于0则会关闭回调,建议设置为300ms

启用音量大小提示,在 startLocalAudio() 之前调用1.0.8
setExposureCompensationvaluenumberintyes

曝光值;

取值范围:[-12,12],数值越大,曝光越强

设置曝光1.0.8
setVideoStabilizationenablebooleanbooleanyestrue:开启;false:不开启设置是否开启防抖1.0.8


 

RemoteView Apis

方法名参数JS类型Java类型必填参数说明方法说明最低版本
setRemoteViewRotationuseIdstringStringyes远端用户ID设置远端图像的顺时针旋转角度1.0.0
rotationnumberintyes

顺时针旋转角度 

            0  不旋转(默认值)TRTC_VIDEO_ROTATION_0

            1  90度         TRTC_VIDEO_ROTATION_90

            2  180度        TRTC_VIDEO_ROTATION_180

            3  270度        TRTC_VIDEO_ROTATION_270

setRemoteViewFillModeuseIdstringStringyes远端用户ID设置远端图像的渲染模式1.0.0
modenumberintyes

填充或适应模式

0 填充(默认值) TRTC_VIDEO_RENDER_MODE_FILL

1 适应 TRTC_VIDEO_RENDER_MODE_FIT

muteRemoteVideoStreamuseIdstringStringyes远端用户ID暂停/恢复接收指定的远端视频流(不释放显示资源)1.0.0
mutebooleanbooleanyestrue:暂停;false:恢复
muteAllRemoteVideoStreamsmutebooleanbooleanyestrue:暂停;false:恢复暂停/恢复接收所有远端视频流(不释放显示资源)1.0.0
setRemoteAudioVolumeuseIdstringStringyes远端用户ID设置某个远端用户的播放音量1.0.0
volumenumberintyes音量大小,取值0 - 100
muteRemoteAudiouseIdstringStringyes远端用户ID;静音/取消静音指定的远端用户的声音1.0.0
mutebooleanbooleanyestrue:暂停;false:恢复
muteAllRemoteAudiomutebooleanbooleanyestrue:静音;false:取消静音静音/取消静音所有远端用户的声音1.0.0


 

DebugView Api

方法名参数JS类型Java类型必填参数说明方法说明最低版本
showDebugView显示debug仪表盘1.0.0


 

Log Apis

方法名参数JS类型Java类型必填参数说明方法说明最低版本
setLogLevellevelnumberintyes

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
setConsoleEnabledenabledbooleanbooleanyes

指定是否启用

true 启用;

false 禁止(默认)

启用或禁用控制台日志打印1.0.0
setLogCompressEnabledenabledbooleanbooleanyes

指定是否启用

true 启用(默认);log存储体积明显减小,需腾讯云提供的Python脚本解压后才能阅读;

false 禁止;log采用明文存储,可以直接用记事本打开阅读,但占用空间较大。

启用或禁用 Log 的本地压缩1.0.0
setLogDirPathpathstringStringyes

自定义日志存储路径;

默认路径: /app私有目录/files/log/tencent/liteav/ 下

修改日志保存路径

【注意】如需修改, 必须在所有方法前调用,并且保证目录存在及应用有目录的读写权限。

1.0.0


 

SpeedTest Apis

方法名参数JS类型Java类型必填参数说明方法说明最低版本
startSpeedTestsdkAppIdnumberintyes应用标识开始进行网络测速, 测试结果通过 TRTCCloudListener.onSpeedTest 回调1.0.8
userIdstringStringyes用户标识
secretKeystringStringyes用户签名
stopSpeedTest停止服务器测速1.0.8


 

CustomMsg Apis

方法名参数JS类型Java类型必填参数说明方法说明最低版本
sendCustomCmdMsgcmdIDnumberintyes消息 ID,取值范围为1 - 10发送自定义消息给房间内所有用户1.0.8
datastringStringyes待发送的消息,最大支持1KB(1000字节)的数据大小
reliableOrderedbooleanbooleanyes

是否可靠有序发送;

会引入一定的延时,因为接收端要暂存并排序这些消息。

promisePromisePromise <boolean>yes/
sendSEIMsgdatastringStringyes待发送的数据,最大支持1kb(1000字节)的数据大小将小数据量的自定义数据嵌入视频帧中1.0.8
repeatCountnumberintyes发送数据次数
promisePromisePromise <boolean>yes/


 

SDK Event 回调:

方法名参数JS类型Java类型必填参数说明方法说明最低版本
onEnterRoomresultnumberintyes

enterRoom() 接口执行结果

正值 进房成功;

负值 进房失败;同时会有 onError() 回调抛出。

已加入房间的事件回调;

调用 TRTCCloud 中的 enterRoom() 接口执行进房操作后,会收到来自 SDK 的 onEnterRoom(result) 回调。

1.0.0
onExitRoomreasonnumberintyes

离开房间原因;

0:主动调用 exitRoom 退房;

1:被服务器踢出当前房间;

2:当前房间整个被解散。

离开房间的事件回调;

调用 TRTCCloud 中的 exitRoom() 接口会执行退出房间的相关逻辑;

 
onRemoteUserEnterRoomuserIdstringStringyes远端用户标识有用户加入当前房间事件回调1.0.0
onRemoteUserLeaveRoomuserIdstringStringyes远端用户标识有用户离开当前房间事件回调1.0.0
reasonnumberintyes离开原因;0表示用户主动退出房间,1表示用户超时退出,2表示被踢出房间。
onUserVideoAvailableuserIdstringStringyes远端用户标识远端用户是否存在可播放的主路画面(一般用于摄像头)回调1.0.0
availablebooleanbooleanyes

画面是否开启

true 表示该路画面已经有可用的视频数据帧到达。此时可加载该用户远程画面。

false 表示该路远程画面已经被关闭,可能由于该用户调用 muteLocalVideo() 或 stopLocalPreview()。

onUserAudioAvailableuserIdstringStringyes远端用户标识远端用户是否存在可播放的音频数据回调1.0.0
availablebooleanbooleanyes声音是否开启1.0.4移除
onErrorerrCodenumberintyes错误码

错误回调,意味着 SDK 不可恢复的错误。

【注意】请务必监听并分情况给用户适当的界面提示。

1.0.0
errMsgstringStringyes错误信息
extraInfoanyBundleyes扩展信息字段,个别错误码可能会带额外的信息帮助定位问题.
onCameraDidReady 1.0.8
onSpeedTestcurrentResultMap<any, any>WritableMapyes

当前完成的测速结果,包括:

服务器 IP 地址;

网络质量;

上行丢包率,范围是0 - 1.0;

下行丢包率,范围是0 - 1.0;

延迟(毫秒);

服务器测速的回调,SDK 对多个服务器 IP 做测速,每个 IP 的测速结果通过这个回调通知1.0.8
finishedCountnumberintyes已完成测速的服务器数量
totalCountnumberintyes需要测速的服务器总数量
onFirstVideoFrameuserIdstringStringyes

本地或远程用户 ID;

null,代表开始渲染本地采集的摄像头画面,先调用startLocalPreview 触发;

不为 null,代表开始渲染远程用户的首帧画面,需要您先调用 startRemoteView 触发

开始渲染本地或远程用户的首帧画面1.0.8
streamTypenumberintyes视频流类型:摄像头或屏幕分享。
widthnumberintyes画面宽度
heightnumberintyes画面高度
onSendFirstLocalVideoFramestreamTypenumberintyes视频流类型,大画面、小画面或辅流画面(屏幕分享)首帧本地视频数据已经被送出1.0.8
onRecvCustomCmdMsguserIdstringStringyes用户标识收到自定义消息回调1.0.8
cmdIDnumberintyes数据流 ID
seqnumberintyes消息序号
messagestringStringyes消息数据
onMissCustomCmdMsguserIdstringStringyes用户标识自定义消息丢失回调1.0.8
cmdIDnumberintyes数据流 ID
errCodenumberintyes错误码,当前版本为-1
missednumberintyes丢失的消息数量
onRecvSEIMsguserIdstringStringyes用户标识收到 SEI 消息的回调1.0.8
datastringStringyes数据
onUserVoiceVolumeuserVolumesany[]WritableArrayyes所有正在说话的房间成员的音量,取值范围0 - 100提示音量大小的回调,包括每个 userId 的音量和远端总音量1.0.8
totalVolumnumberintyes所有远端成员的总音量, 取值范围0 - 100
onNetworkQualitylocalQualitystringStringyes上行网络质量网络质量,该回调每2秒触发一次,统计当前网络的上行和下行质量1.0.8
remoteQualityany[]WritableArrayyes下行网络质量
onStatisticsappCpustringStringyes当前 App 的 CPU 使用率(%)技术指标统计回调1.0.8
systemCpunumberintyes当前系统的 CPU 使用率(%)
rttnumberintyes延迟(毫秒,一般低于50ms的 rtt 相对理想
upLossnumberintyesC -> S 上行丢包率(%),越小越好
downLossnumberintyesS -> C 下行丢包率(%),越小越好
sendBytesnumberintyes发送字节总数
receiveBytesnumberintyes接收字节总数
remoteArraystringStringyes远端成员的音视频统计信息
onConnectionLostSDK 跟服务器的连接断开1.0.8
onTryToReconnectSDK 尝试重新连接到服务器1.0.8
onConnectionRecoverySDK 跟服务器的连接恢复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);
}