跳到内容 跳到主导航 跳到页脚

视频通话TRTC

组件功能

用于支持视频通话功能

TRTC SDK官方文档链接:https://cloud.tencent.com/product/trtc

支持平台

平台是否支持
豹小秘
豹小秘DP
豹小秘MIni

组件参数

使用 global.RTCVIEW 绘制界面时使用。

属性JS 类型Java类型默认值必填说明最低版本
trtcParamsTRTCParamsReadableMapyesLocalView参数:TRTC参数1.0.0
beautyParamsBeautyParamsReadableMapnoLocalView参数:美颜参数1.0.0
videoParamsVideoParamsReadableMapnoLocalView参数:视频编码参数1.0.0
remoteParamsRemoteTRTCParamsReadableMapyesremoteView参数:远程视频源参数1.0.0
rotationnumberint0no通用参数:视图旋转角度,顺时针旋转角度 参考值:TRTC_VIDEO_ROTATION_01.0.0
modenumberint0no通用参数:填充或适应模式参考值:TRTC_VIDEO_RENDER_MODE_FILL1.0.0
encoderRotationnumberint0noLocalView参数:视频编码输出的画面方向顺时针旋转角度,目前仅支持0度和180度两个角度参考值:TRTC_VIDEO_ROTATION_01.0.7
isFrontCamerabooleanbooleantruenoLocalView参数:
是否为前置摄像头;
true:前置摄像头,广角(默认)
false:后置摄像头,高清;
1.0.7
mirrorbooleanbooleanfalsenoLocalView参数:
编码器输出的画面镜像模式true:镜像;
false:不镜像(默认值);
 
qosParamsQosParamsReadableMapno网络流控参数 

参数详解

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

QosParams

属性JS 类型Java类型默认值必填说明最低版本
preferencenumberNumberyes画质偏好。TRTC 在弱网络环境下有两种调控模式:“优先保证画面清晰”或“优先保证画面流畅”,两种模式均会优先保障声音数据的传输。 
优先保证画面清晰:2;
优先保证画面流畅:1;
1.3.0
controlModenumberNumberyes流控模式(已废弃) 流控模式1.3.0

SDK Event 回调

方法名参数JS类型Java类型必填参数说明方法说明最低版本
onEnterRoomresultnumberintyesenterRoom() 接口执行结果正值 进房成功;负值 进房失败;同时会有 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

组件方法

使用 global.TRTC 组件调用。

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
startLocalPreviewisFrontbooleanbooleanyestrue:前置摄像头;false:后置摄像头开启本地摄像头视频预览1.0.0
stopLocalPreviewno关闭本地摄像头视频预览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
setVideoEncoderMirrormirrorbooleanbooleanyestrue:镜像;false:不镜像;设置编码器输出的画面镜像模式,默认不设置镜像1.0.7
enableAudioVolumeEvaluationintervalMsnumberintyesonUserVoiceVolume 回调的触发间隔, 单位为ms,最小间隔为100ms;小于等于0则会关闭回调,建议设置为300ms启用音量大小提示,在 startLocalAudio() 之前调用1.0.8
setExposureCompensationvaluenumberintyes曝光值;取值范围:[-12,12],数值越大,曝光越强设置曝光1.0.8
setVideoStabilizationenablebooleanbooleanyestrue:开启;false:不开启设置是否开启防抖1.0.8
snapshotVideouserIdstreamTypepicNamestringnumberstringstringnumberstringyesuserId:用户 ID,如空表示截取本地的视频画面。streamType视频流类型,可选择截取主路画面或辅路画面。sourceType画面来源,可选择截取视频流画面或视频渲染画,前者一般更清晰。可以通过本接口截取本地的视频画面,远端用户的主路画面以及远端用户的辅路(屏幕分享)画面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类型必填参数说明方法说明最低版本
setLogLevellevelnumberintyesLog 输出级别

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/
enableAudioVolumeEvaluationintervalMsnumbernumberyes决定了 onUserVoiceVolume 回调的触发间隔,单位为ms,最小间隔为100ms。建议设置为300ms如需打开此功能,请在 startLocalAudio() 之前调用。1.0.8

使用示例

TRTC视频通话的功能内置于机器环境中,不需要额外的引入,在使用时通过 global 全局变量访问。

  • global.RTCVIEW,页面绘制组件
  • global.TRTC,功能与变量访问组件

下面提供使用示例:

LocalView

//通过 React.createElement 创建本地视频元素,按需嵌入页面中
React.createElement(global.RTCVIEW, {
            style: { width: '100%', height: '100%' },
            trtcParams: {
                sdkAppId: this.sdkAppId,
                userId: this.userId,
                roomId: this.roomId,
                userSig: this.userSig,
            },
            beautyParams: {
                beautyStyle: global.TRTC.TRTC_BEAUTY_STYLE_SMOOTH,
                beautyLevel: 2,
                whitenessLevel: 5,
                ruddinessLevel: 3,
            },
            videoParams: {
                videoResolution: global.TRTC.TRTC_VIDEO_RESOLUTION_1280_720,
                videoFps: 24,
                videoBitrate: 1200,
                minVideoBitrate: 700,
            },
            isFrontCamera: true
            onRemoteUserEnterRoom: this.onRemoteUserEnterRoom,
            onRemoteUserLeaveRoom: this.onRemoteUserLeaveRoom,
            onEnterRoom: this.onEnterRoom,
            onExitRoom: this.onExitRoom,
            onUserVideoAvailable: this.onUserVideoAvailable,
            onError: this.onError
})

 RemoteView

//通过 React.createElement 创建远端视频元素,按需嵌入页面中
 React.createElement(global.RTCVIEW, {
        style: { width: '100%', height: '100%' },
        remoteParams: {
              userId: this.userId
        },
 });

TRTC功能调用

private _testApiSwitchCamera():void{
   global.TRTC.switchCamera()
}
private _testApiSetLocalViewRotation():void{
   global.TRTC.setLocalViewRotation(TRTC.TRTC_VIDEO_ROTATION_90);
}

下面提供一个demo,其中的sdkAppId与userSign,对应腾讯RTC账户信息,需要自行配置或者计算。其他视频通话端demo,参考:https://cloud.tencent.com/document/product/647/17021

启动方式:

  • 语音指令“打开开发者的演示示例”

视频通话TRTC

这篇文章是否有帮助?

0