说明
RemoteVideoTrack 用于远端视频渲染与远端流状态监听。
RemoteVideoTrack 自身方法
setRemoteVideoEvent(event)
参数说明:
event:RTCRemoteVideoEvent,远端流状态事件回调实现。 返回值说明:无(Unit)。
- 订阅后连续约 3 秒未收到有效帧时,回调
isChoke = true。 - 收到有效帧并恢复后,回调
isChoke = false。
removeRemoteVideoEvent()
参数说明:无。
返回值说明:无(
Unit)。
继承自 VideoTrack 的渲染方法
addPlayView(view)
VcsPlayerGlTextureView / VcsPlayerGlSurfaceView。参数说明:
view:View,渲染控件。 返回值说明:Boolean,true表示添加成功;类型不支持或重复添加时为false。
replacePlayView(views)
参数说明:
views:MutableList<View>,渲染控件集合,仅支持VcsPlayerGlTextureView/VcsPlayerGlSurfaceView。 返回值说明:无(Unit)。
removePlayView(view)
参数说明:
view:View,目标渲染控件。 返回值说明:无(Unit)。
removeAllPlayView()
参数说明:无。
返回值说明:无(
Unit)。
RTCRemoteVideoEvent 回调接口
RTCRemoteVideoEvent 为远端视频流状态回调接口,通过 setRemoteVideoEvent(event) 注册。
onReceiveStreamStatusChange(channel, uid, trackDesc, isChoke)
参数说明:
channel:String,远端流所属频道 ID。uid:String,远端用户 ID。trackDesc:String,轨道描述。isChoke:Boolean,是否卡顿;true为卡顿,false为恢复正常。 返回值说明:无(Unit)。
视频渲染控件
视频显示使用 SDK 提供的VcsPlayerGlTextureView 或 VcsPlayerGlSurfaceView。以下用法同时适用于远端视频显示与本地摄像头预览:
onResume() / onPause();不用时先从轨道移除控件,再调用 onDestroy() 释放渲染资源。销毁后的控件不要复用。轨道负责送帧,正常订阅或摄像头预览无需自行调用 updateFrame。
显示配置
以下接口在两种控件上均可使用,返回值均为Unit:
旋转、翻转和模式切换从下一帧生效;没有新帧时不会改变已显示帧。缩放方式可作用于当前画面。配置仅属于当前控件,不改变推送给远端的视频。
updateFrame(y, u, v, width, height, format, rotationDegrees)
仅在应用直接向渲染控件提交原始帧时使用:
返回值:
Unit。帧数据在方法返回前复制,之后应用可复用数组。无效尺寸、数据长度、像素格式或非 90 度整数倍角度会使本帧被拒绝,保留上一帧;没有单独的失败回调。自定义模式会覆盖帧方向,但传入帧角度仍必须合法。