自定义视频采集和渲染
createCustomVideoTrack
创建一个自定义的视频轨道。
ArkTS
public abstract createCustomVideoTrack(): number;
详情
当你需要在频道中发布自定义采集视频时,可参考以下步骤:
- 调用该方法创建视频轨道并获得视频轨道 ID。
- 调用 joinChannelWithOptions 加入频道时,将 ChannelMediaOptions 中的 customVideoTrackId 设置为你想要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
true
。 - 调用 将 videoTrackId 指定为步骤 2 中指定的视频轨道 ID,即可实现在频道内发布对应的自定义视频源。
返回值
- 方法调用成功,返回视频轨道 ID 作为该视频轨道的唯一标识。
- 方法调用失败,返回负值。详见错误码了解详情和解决建议。
destroyCustomVideoTrack
pushExternalVideoFrame
推送外部原始视频帧到 SDK。
ArkTS
public abstract pushExternalVideoFrame(frame: VideoFrame): boolean;
详情
调用 setExternalVideoSource 方法,设置 enabled 参数为 true
、encodedFrame 参数为 false
后,你可以调用本方法将未编码的外部视频帧推送到 SDK。
调用该方法或 toc_video_custom_capturenrendering.html#api_irtcengine_pushvideoframe2 均能将视频帧数据传递给 SDK。区别为该方法支持 Texture 格式的视频数据。
参数
- frame
- 待推送的外部原始视频帧。详见 VideoFrame。
返回值
true
:方法调用成功。false
:方法调用失败。详见错误码了解详情和解决建议。
setExternalVideoSource
设置外部视频源。
ArkTS
public abstract setExternalVideoSource(enable: boolean, useTexture: boolean, sourceType: Constants.ExternalVideoSourceType): number;
详情
注意
请在加入频道前调用该方法。
参数
- useTexture
- 是否使用 Texture 格式的外部视频帧:
true
: 使用 Texture 格式的外部视频帧。false
: 不使用 Texture 格式的外部视频帧。
- sourceType
- 外部视频帧是否编码,详见 ExternalVideoSourceType。