概览

最近更新时间:2019-03-11 17:07:45

查看pdf

TRTCCloud @ TXLiteAVSDK

腾讯云视频通话功能的主要接口类.

基础方法

API 描述
sharedInstance 获取 TRTCCloud 单例对象
destroySharedInstance 销毁 TRTCCloud 单例对象
setListener 设置回调接口 TRTCCloudListener,用户获得来自 TRTCCloud 的各种状态通知
setListenerHandler 设置驱动回调的线程,默认会采用 Main Thread。 也就是说,如果您不指定 listenerHandler,那么直接在 TRTCCloudListener 的回调函数中操作 UI 界面将是安全的

房间相关接口函数

API 描述
enterRoom 进入房间
exitRoom 离开房间
ConnectOtherRoom 开启跨房连麦
DisconnectOtherRoom 关闭跨房连麦

视频相关接口函数

API 描述
startLocalPreview 开启本地视频的预览画面
stopLocalPreview 停止本地视频采集及预览
startRemoteView 启动渲染远端视频画面
stopRemoteView 停止渲染远端视频画面
stopAllRemoteView 停止渲染远端视频画面,如果有屏幕分享,则屏幕分享的画面也会一并被关闭
muteLocalVideo 是否屏蔽本地视频,当屏蔽本地视频后,房间里的其它成员会收到 onUserVideoAvailable 回调通知
setVideoEncoderParam 设置视频编码器相关参数,该设置决定了远端用户看到的画面质量(同时也是云端录制出的视频文件的画面质量)
setNetworkQosParam 设置网络流控相关参数,该设置决定了 SDK 在各种网络环境下的调控策略(比如弱网下是“保清晰”还是“保流畅”)
setLocalViewFillMode 设置本地图像的渲染模式
setRemoteViewFillMode 设置远端图像的渲染模式
setLocalViewRotation 设置本地图像的顺时针旋转角度
setRemoteViewRotation 设置远端图像的顺时针旋转角度
setVideoEncoderRotation 设置视频编码出来的(供录制和远程观看的)画面方向
setGSensorMode 设置重力感应的适应模式
enableEncSmallVideoStream 开启大小画面双路编码模式。如果当前用户是房间中的主要角色(比如主播、老师、主持人...),并且使用 PC 或者 Mac 环境,可以开启该模式。开启该模式后,当前用户会同时输出【高清】和【低清】两路视频流(但只有一路音频流) 对于开启该模式的当前用户,会占用更多的网络带宽,并且会更加消耗 CPU 计算资源。对于同一房间的远程观众而言, 如果有些人的下行网络很好,可以选择观看【高清】画面,如果有些人的下行网络不好,可以选择观看【低清】画面。
setRemoteVideoStreamType 选定观看指定 uid 的大画面还是小画面
setPriorRemoteVideoStreamType 设定观看方优先选择的视频质量

音频相关接口函数

API 描述
startLocalAudio 开启本地音频流,该函数会启动麦克风采集,并将音频数据广播给房间里的其他用户
stopLocalAudio 关闭本地音频流
muteLocalAudio 是否屏蔽本地音频,当屏蔽本地音频后,房间里的其它成员会收到 onUserAudioAvailable 回调通知
setAudioRoute 设置音频路由
muteRemoteAudio 设置指定用户是否静音
muteAllRemoteAudio 设置所有远端用户是否静音
enableAudioVolumeEvaluation 启用音量大小提示 开启后会在 onUserVoiceVolume 中获取到 SDK 对音量大小值的评估

摄像头相关操作

API 描述
switchCamera 切换摄像头
isCameraZoomSupported 查询当前摄像头是否支持缩放
setZoom 设置摄像头缩放因子(焦距)
isCameraTorchSupported 查询是否支持手电筒模式
enableTorch 开关闪光灯
isCameraFocusPositionInPreviewSupported 查询是否支持设置焦点
setFocusPosition 设置摄像头焦点
isCameraAutoFocusFaceModeSupported 查询是否支持自动识别人脸位置

美颜滤镜相关接口函数

API 描述
setBeautyStyle 设置美颜、美白、红润效果级别
setFilter 设置指定素材滤镜特效
setFilterConcentration 设置滤镜浓度
setWatermark 添加水印,height 不用设置,sdk 内部会根据水印宽高比自动计算 height

辅流相关接口函数(屏幕共享,远程播片等)

API 描述
startRemoteSubStreamView 开始渲染远端用户辅流画面(屏幕分享) 对应于 startRemoteView() 用于观看远端的主路画面,该接口只能用于观看辅路(屏幕分享、远程播片)画面
stopRemoteSubStreamView 停止渲染远端用户的辅流画面(屏幕分享)
setRemoteSubStreamViewFillMode 设置辅流画面(屏幕分享)的渲染模式 对应于 setRemoteViewFillMode() 于设置远端的主路画面,该接口用于设置远端的辅路(屏幕分享、远程播片)画面

自定义采集和渲染

API 描述
enableCustomVideoCapture 启用视频自定义采集模式,即放弃 SDK 原来的视频采集流程,改用 sendCustomVideoData 向 SDK 塞入自己采集的视频画面
sendCustomVideoData 发送自定义的视频数据
setLocalVideoRenderListener 设置本地视频自定义渲染
setRemoteVideoRenderListener 设置远端视频自定义渲染
callExperimentalAPI 调用实验性 API 接口

自定义消息发送

API 描述
sendCustomCmdMsg 发送自定义消息给房间内所有用户
sendSEIMsg 发送自定义消息给房间内所有用户

背景混音相关接口函数

API 描述
playBGM 播放背景音乐
stopBGM 停止播放背景音乐
pauseBGM 暂停播放背景音乐
resumeBGM 继续播放背景音乐
getBGMDuration 获取音乐文件总时长,单位毫秒
setBGMPosition 设置背景音乐播放进度
setMicVolumeOnMixing 设置麦克风的音量大小,播放背景音乐混音时使用,用来控制麦克风音量大小
setBGMVolume 设置背景音乐的音量大小,播放背景音乐混音时使用,用来控制背景音音量大小
setReverbType 设置混响效果
setVoiceChangerType 设置变声类型

网络测试

API 描述
startSpeedTest 开始进行网络测速(视频通话期间请勿测试,以免影响通话质量)
stopSpeedTest 停止服务器测速

混流转码并发布到 CDN

API 描述
startPublishCDNStream 启动 CDN 发布:通过腾讯云将当前房间的音视频流发布到直播 CDN 上
stopPublishCDNStream 停止 CDN 发布
setMixTranscodingConfig 启动(更新)云端的混流转码:通过腾讯云的转码服务,将房间里的多路画面叠加到一路画面上

LOG 相关接口函数

API 描述
mTXLogListener
getSDKVersion 获取 SDK 版本信息
setLogLevel 设置 Log 输出级别
setConsoleEnabled 启用或禁用控制台日志打印
setLogCompressEnabled 启用或禁用 Log 的本地压缩。 开启压缩后,Log 存储体积明显减小,但需要腾讯云提供的 Python 脚本解压后才能阅读。禁用压缩后,Log 采用明文存储,可以直接用记事本打开阅读,但占用空间较大。
setLogDirPath 修改日志保存路径, 默认保存在 /sdcard/log/tencent/liteav 下,如需修改,必须在所有方法前调用,并且保证目录存在及应用有目录的读写权限
setLogListener 设置日志回调
showDebugView 显示仪表盘(状态统计和事件消息浮层 view),方便调试
setDebugViewMargin 设置仪表盘的边距,必须在用户进房后设置才生效

播放背景音乐的回调接口

播放背景音乐的回调接口。

API 描述
onBGMStart 音乐播放开始的回调通知
onBGMProgress 音乐播放进度的回调通知
onBGMComplete 音乐播放结束的回调通知

视图边距

视图边距

属性 类型 描述
leftMargin float 距离左边的百分比,取值范围为0 - 1
topMargin float 距离顶部的百分比,取值范围为0 - 1
rightMargin float 距离右边的百分比,取值范围为0 - 1
bottomMargin float 距离底部的百分比,取值范围为0 - 1
API 描述
TRTCViewMargin 构造方法

TRTCCloudListener @ TXLiteAVSDK

腾讯云视频通话功能的事件回调接口。

TRTCCloudListener 是 TRTCCloud 的主要回调接口。

通用事件回调

API 描述
onError 错误回调:SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示
onWarning 警告回调

房间事件回调

API 描述
onEnterRoom 加入房间
onExitRoom 离开房间 离开房间成功的回调
onConnectOtherRoom 跨房连麦回调
onDisConnectOtherRoom 断开跨房连麦回调

成员事件回调

API 描述
onUserEnter userid 对应的成员的进房通知,您可以在这个回调中调用 startRemoteView 显示该 userid 的视频画面
onUserExit userid 对应的成员的退房通知,您可以在这个回调中调用 stopRemoteView 关闭该 userid 的视频画面
onUserVideoAvailable userid 对应的远端主路(即摄像头)画面的状态通知
onUserSubStreamAvailable userid 对应的远端辅路(屏幕分享等)画面的状态通知
onUserAudioAvailable userid 对应的远端声音的状态通知
onUserVoiceVolume userid 对应的成员语音音量,通过调用 TRTCCloud enableAudioVolumeEvaluation 来开关这个回调

统计和质量回调

API 描述
onNetworkQuality 网络质量:该回调每2秒触发一次,统计当前网络的上行和下行质量。注:userid 为"" 代表自己当前的视频质量
onStatistics 技术指标统计回调:如果您是熟悉音视频领域相关术语,可以通过这个回调获取 SDK 的所有技术指标, 如果您是首次开发音视频相关项目,可以只关注 onNetworkQuality 回调

音视频事件回调

API 描述
onFirstVideoFrame 首帧视频画面到达,界面此时可以结束 loading,并开始显示视频画面
onFirstAudioFrame 首帧音频数据到达

服务器事件回调

API 描述
onConnectionLost SDK 跟服务器的连接断开
onTryToReconnect SDK 尝试重新连接到服务器
onConnectionRecovery SDK 跟服务器的连接恢复
onSpeedTest 服务器测速的回调,SDK 对多个服务器 IP 做测速,每个 IP 的测速结果通过这个回调通知

硬件设备事件回调

API 描述
onCameraDidReady 摄像头准备就绪
onMicDidReady 麦克风准备就绪
onAudioRouteChanged 音频路由发生变化,音频路由即声音由哪里输出(扬声器、听筒)

自定义消息的接收回调

API 描述
onRecvCustomCmdMsg 当房间中的某个用户使用 sendCustomCmdMsg 发送自定义消息时,房间中的其它用户可以通过 onRecvCustomCmdMsg 接口接收消息。
onMissCustomCmdMsg TRTC 所使用的传输通道为 UDP 通道,所以即使设置了 reliable,也做不到100不丢失,只是丢消息概率极低,能满足常规可靠性要求。 在过去的一段时间内(通常为5s),自定义消息在传输途中丢失的消息数量的统计,SDK 都会通过此回调通知出来。
onRecvSEIMsg 当房间中的某个用户使用 sendSEIMsg 发送数据时,房间中的其它用户可以通过 onRecvSEIMsg 接口接收数据

CDN 旁路转推

API 描述
onStartPublishCDNStream 旁路推流到 CDN 的回调,对应于 TRTCCloud 的 startPublishCDNStream() 接口
onStopPublishCDNStream -

TRTCVideoRenderListener

自定义视频渲染回调对象

API 描述
onRenderVideoFrame

ITRTCVideoPostProcessListener

本地视频的二次加工回调

API 描述
onVideoPostProcess 经过 SDK 前处理后的视频数据,前处理包括对摄像头采集到的视频进行美颜、裁剪、缩放和旋转
onVideoPostProcessGLDestroy 自定义预处理,Opengl 环境销毁通知回调; 用户可以在此回调里,进行 opengl 资源回收;保证跟 sdk 的 opengl 在同一个线程;否则可能会显存泄漏或崩溃

TRTCLogListener

日志事件回调对象

建议在一个比较早初始化的类中设置回调对象,如 Application。

API 描述
onLog

其他 API 对象

TRTCVideoFrame

视频帧数据。

属性 类型 描述
pixelFormat int 视频帧的数据格式,如 I420,Texture2D
bufferType int 视频帧的数据结构类型,如 textureId,byte[],ByteBuffer
textureId int 视频纹理
data byte [] 视频数据,主要在 Java 层使用
buffer ByteBuffer 视频数据,DirectBuffer,主要在 native 层使用
width int 画面的宽度
height int 画面的高度
timestamp long 时间戳
rotation int 画面旋转角度

TRTCAudioFrame

音频帧数据。

属性 类型 描述
data byte [] 音频数据
sampleRate int 采样率
channel int 声道数
timestamp long 时间戳

TRTCQuality

网络质量。

属性 类型 描述
userId String 用户 ID
quality int 网络质量

TRTCParams

编码参数 TRTCParams。
作为 TRTC SDK 的进房参数,只有该参数填写正确,才能顺利进入 roomId 制定的视频房间。

属性 类型 描述
sdkAppId int 应用标识 [必填] 腾讯视频云基于 sdkAppId 完成计费统计
userId String 用户标识 [必填] 当前用户的 userid,相当于用户名
userSig String 用户签名 [必填] 当前 userId 对应的验证签名,相当于登录密码
roomId int 房间号码 [必填] 指定房间号,在同一个房间里的用户(userId)可以彼此看到对方并进行视频通话
privateMapKey String 房间签名 [非必选] 如果您希望某个房间(roomId)只让特定的某些用户(userId)才能进入,就需要使用 privateMapKey 进行权限保护
businessInfo String 业务数据 [非必选] 某些非常用的高级特性才需要用到此字段

TRTCVideoEncParam

编码参数。

属性 类型 描述
videoResolution int 视频分辨率
videoResolutionMode int 分辨率模式(横屏分辨率 - 竖屏分辨率)
videoFps int 视频采集帧率,推荐设置为15fps或20fps,10fps以下会有明显的卡顿感,20fps以上则没有必要,如果大于20,sdk 内部会限制到20
videoBitrate int 视频上行码率

TRTCNetworkQosParam

网络流控相关参数。

属性 类型 描述
preference int 弱网下是“保清晰”还是“保流畅”
controlMode int 视频分辨率(云端控制 - 客户端控制)

TRTCVolumeInfo

音量大小。
表示语音音量的评估大小,通过这个数值,您可以在 UI 界面上用图标表征 userId 是否有在说话。

属性 类型 描述
userId String 说话者的 userId,空则为自己
volume int 说话者的音量,取值范围 0 - 100

TRTCSpeedTestResult

网络测速结果。
您可以在用户进入房间前通过 TRTCCloud 的 startSpeedTest 接口进行测速 (注意:请不要在通话中调用)。
测速结果会每2秒 - 3秒返回一次,每次返回一个 ip 地址的测试结果。

属性 类型 描述
ip String 服务器 ip 地址
quality int 网络质量
upLostRate float 上行丢包率,范围是[0,1.0]
downLostRate float 下行丢包率,范围是[0,1.0]
rtt int 延迟(毫秒):代表 SDK 跟服务器一来一回之间所消耗的时间,这个值越小越好

TRTCPublishCDNParam

属性 类型 描述
appId int 腾讯云 AppID,在【直播控制台】>【直播码接入】可查询到
bizId int 腾讯云直播 bizid,在【直播控制台】>【直播码接入】可查询到
url String 旁路转推的 URL

TRTCMixUser

属性 类型 描述
userId String 参与混流的 userId
x int 图层位置 x 坐标(绝对像素值)
y int 图层位置 y 坐标(绝对像素值)
width int 图层位置宽度(绝对像素值)
height int 图层位置高度(绝对像素值)
zOrder int 图层层次(1 - 15)不可重复
streamType int 参与混合的是主路画面(TRTC_VIDEO_STREAM_TYPE_BIG,默认)还是屏幕分享(TRTC_VIDEO_STREAM_TYPE_SUB)画面
API 描述
TRTCMixUser
TRTCMixUser

TRTCTranscodingConfig

属性 类型 描述
appId int 腾讯云 AppID,在【直播控制台】>【直播码接入】可查询到
bizId int 腾讯云直播 bizid,在【直播控制台】>【直播码接入】可查询到
mode int 转码 config 模式
videoWidth int 视频分辨率:宽
videoHeight int 视频分辨率:高
videoBitrate int 视频码率
videoFramerate int 视频帧率
videoGOP int 视频 GOP
audioSampleRate int 音频采样率 48000
audioBitrate int 音频码率 64K
audioChannels int 声道数 2
mixUsers ArrayList< TRTCMixUser > 混流配置

TRTCStatistics

属性 类型 描述
appCpu int 当前 App 的 CPU 使用率(%)
systemCpu int 当前系统的 CPU 使用率 (%)
rtt int 延迟(毫秒):代表 SDK 跟服务器一来一回之间所消耗的时间,这个值越小越好,一般低于50ms的 RTT 是比较理想的情况,而高于100ms的 RTT 会引入较大的通话延时 由于数据上下行共享一条网络连接,所以 local 和 remote 的 RTT 相同
upLoss int C -> S 上行丢包率(%),这个值越小越好,比如: 0%的丢包率代表网络很好,而30%的丢包率则意味着 SDK 向服务器发送的每10个数据包中就会有3个会在上行传输中丢失
downLoss int S -> C 下行丢包率(%),这个值越小越好,比如: 0%的丢包率代表网络很好,而30%的丢包率则意味着服务器向 SDK 发送的每10个数据包中就会有3个会在下行传输中丢失
sendBytes long 发送字节总数,注意是字节数(bytes),不是比特数(bits)
receiveBytes long 接收字节总数,注意是字节数(bytes),不是比特数(bits)
localArray ArrayList< TRTCLocalStatistics > 自己本地的音视频统计信息,由于可能有大画面、小画面以及辅路画面等多路的情况,所以是一个数组
remoteArray ArrayList< TRTCRemoteStatistics > 远端成员的音视频统计信息,由于可能有大画面、小画面以及辅路画面等多路的情况,所以是一个数组

TRTCRemoteStatistics

属性 类型 描述
userId String 用户 ID,指定是哪个用户的视频流
finalLoss int 该线路的总丢包率(%),这个值越小越好,比如: 0%的丢包率代表网络很好,这个丢包率是该线路的 userid 从上行到服务器再到下行的总丢包率。如果 downLoss 为0%, 但是 finalLoss 不为0,说明该 userId 在上行就出现了无法恢复的丢包
width int 视频宽度
height int 视频高度
frameRate int 接收帧率(fps)
videoBitrate int 视频码率(Kbps)
audioSampleRate int 音频采样率(Hz)
audioBitrate int 音频码率(Kbps)
streamType int 流类型(大画面 | 小画面 | 辅路画面)

TRTCLocalStatistics

属性 类型 描述
width int 视频宽度
height int 视频高度
frameRate int 帧率(fps)
videoBitrate int 视频发送码率(Kbps)
audioSampleRate int 音频采样率(Hz)
audioBitrate int 音频发送码率(Kbps)
streamType int 流类型(大画面 | 小画面 | 辅路画面)