跳转到主要内容

说明

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。以下用法同时适用于远端视频显示与本地摄像头预览:
XML 示例:
应用应随页面生命周期调用控件的 onResume() / onPause();不用时先从轨道移除控件,再调用 onDestroy() 释放渲染资源。销毁后的控件不要复用。轨道负责送帧,正常订阅或摄像头预览无需自行调用 updateFrame。

显示配置

以下接口在两种控件上均可使用,返回值均为 Unit:
旋转、翻转和模式切换从下一帧生效;没有新帧时不会改变已显示帧。缩放方式可作用于当前画面。配置仅属于当前控件,不改变推送给远端的视频。

updateFrame(y, u, v, width, height, format, rotationDegrees)

仅在应用直接向渲染控件提交原始帧时使用:
返回值:Unit。帧数据在方法返回前复制,之后应用可复用数组。无效尺寸、数据长度、像素格式或非 90 度整数倍角度会使本帧被拒绝,保留上一帧;没有单独的失败回调。自定义模式会覆盖帧方向,但传入帧角度仍必须合法。