视频渲染
EnableInstantMediaRendering
开启音视频帧加速渲染。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int EnableInstantMediaRendering();
详情
- 一旦开启快速渲染功能,只能通过调用 Release 方法销毁 IRtcEngine 对象来取消。
- 在该模式下,SDK 启用声网自定义加密算法来缩短建立传输链路的耗时,安全性相对于标准 DTLS (Datagram Transport Layer Security) 有所降低。如果业务场景对安全标准要求较高,请谨慎调用该方法。
适用场景
声网推荐在直播场景下,对观众开启该模式。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
- -7: IRtcEngine 尚未初始化就调用方法。
SetLocalRenderMode
更新本地视图显示模式。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetLocalRenderMode(ERENDER_MODE_TYPE renderMode, EVIDEO_MIRROR_MODE_TYPE mirrorMode = EVIDEO_MIRROR_MODE_TYPE::VIDEO_MIRROR_MODE_AUTO);
详情
初始化本地用户视图后,你可以调用该方法更新本地用户视图的渲染和镜像模式。该方法只影响本地用户看到的视频画面,不影响本地发布视频。
- 请在调用 SetupLocalVideo 方法初始化本地视图后,调用该方法。
- 你可以在通话中多次调用该方法,多次更新本地用户视图的显示模式。
- 该方法仅对第一个摄像头
(PRIMARY_CAMERA_SOURCE)
生效。在自定义视频采集或使用其他类型视频源的场景下,你需要使用 SetupLocalVideo 方法替代该方法。
参数
- renderMode
本地视图显示模式。详见 ERENDER_MODE_TYPE。
- mirrorMode
本地视图的镜像模式,详见 EVIDEO_MIRROR_MODE_TYPE。
注意如果你使用前置摄像头,默认启动本地用户视图镜像模式;如果你使用后置摄像头,默认关闭本地视图镜像模式。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetLocalVideoMirrorMode
设置本地视频镜像。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetLocalVideoMirrorMode(EVIDEO_MIRROR_MODE_TYPE mirrorMode);
详情
参数
- mirrorMode
本地视频镜像模式。详见 EVIDEO_MIRROR_MODE_TYPE。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetRemoteRenderMode
更新远端视图显示模式。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetRemoteRenderMode(int64 uid, ERENDER_MODE_TYPE renderMode, EVIDEO_MIRROR_MODE_TYPE mirrorMode);
详情
初始化远端用户视图后,你可以调用该方法更新远端用户视图在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画面。
- 请在调用 SetupRemoteVideo 方法初始化远端视图后,调用该方法。
- 你可以在通话中多次调用该方法,多次更新远端用户视图的显示模式。
参数
- userId
- 远端用户 ID。
- renderMode
远端用户视图的渲染模式,详见 ERENDER_MODE_TYPE。
- mirrorMode
远端用户视图的镜像模式,详见 EVIDEO_MIRROR_MODE_TYPE。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
SetRemoteRenderModeEx
设置远端视图显示模式。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetRemoteRenderModeEx(int64 uid, ERENDER_MODE_TYPE renderMode, EVIDEO_MIRROR_MODE_TYPE mirrorMode, const FRtcConnection& connection);
详情
- 请在调用 SetupRemoteVideo 方法初始化远端视图后,调用该方法。
- 你可以在通话中多次调用该方法,多次更新远端用户视图的显示模式。
参数
- uid
- 远端用户 ID。
- renderMode
远端视图显示模式,详见 ERENDER_MODE_TYPE。
- mirrorMode
远端用户视图的镜像模式,详见 EVIDEO_MIRROR_MODE_TYPE。
- connection
- Connection 信息。详见 FRtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
SetRenderMode
设置播放器视图的渲染模式。
UFUNCTION(BlueprintCallable, Category = "Agora|IMediaPlayer")
int SetRenderMode(ERENDER_MODE_TYPE renderMode);
参数
- renderMode
播放器视图的渲染模式。详见 ERENDER_MODE_TYPE。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetupLocalVideo
初始化本地视图。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetupLocalVideo(const FVideoCanvas& canvas);
详情
该方法初始化本地视图并设置本地用户视频显示属性,只影响本地用户看到的视频画面,不影响本地发布视频。调用该方法绑定本地视频流的显示视窗(view),并设置本地用户视图的渲染模式和镜像模式。
在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入频道。退出频道后,绑定仍然有效,如果需要解除绑定,可以调用该方法将参数 view 设为 NULL。
- 该方法在加入频道前后都能调用。
- 如果你希望在通话中更新本地用户视图的渲染或镜像模式,请使用 SetLocalRenderMode 方法。
参数
- canvas
- 本地视频显示属性。详见 FVideoCanvas。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
SetupRemoteVideo
初始化远端用户视图。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetupRemoteVideo(const FVideoCanvas& canvas);
详情
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。
调用该方法时需要指定远端视频的用户 ID,一般可以在进频道前提前设置好。如果无法在加入频道前得到远端用户的 ID,可以在收到 FOnUserJoined 回调时调用该方法。
如需解除某个远端用户的绑定视图,可以调用该方法并将 view 设置为空。
离开频道后,SDK 会清除远端用户视图的绑定关系。
- 如果你希望在通话中更新远端用户视图的渲染或镜像模式,请使用 SetRemoteRenderMode 方法。
- 如果你使用了录制服务,录制服务会作为一个哑客户端加入频道,因此也会触发 FOnUserJoined 回调。由于录制服务不会发送视频流,App 无需为它绑定视图。如果 App 无法识别哑客户端,可以在收到 FOnFirstRemoteVideoDecoded 回调时再绑定远端用户视图。
参数
- canvas
远端视频显示属性。详见 FVideoCanvas。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
SetupRemoteVideoEx
初始化远端用户视图。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetupRemoteVideoEx(const FVideoCanvas& canvas, const FRtcConnection& connection);
详情
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。
调用该方法时需要在 FVideoCanvas 中指定远端视频的用户 ID,一般可以在进频道前提前设置好。
如果无法在加入频道前得到远端用户的 uid,可以在收到 FOnUserJoined 回调时调用该方法。如果启用了视频录制功能,视频录制服务会做为一个哑客户端加入频道,因此其他客户端也会收到它的 onUserJoined
事件, App 不应给它绑定视图(因为它不会发送视频流)。
如需解除某个远端用户的绑定视图,可以调用该方法并将 view 设置为空。
离开频道后,SDK 会清除远端用户视图的绑定关系。
如果你希望在通话中更新远端用户视图的渲染或镜像模式,请使用 SetRemoteRenderModeEx 方法。
参数
- canvas
视频画布信息。详见 FVideoCanvas。
- connection
- Connection 信息。详见 FRtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
StartMediaRenderingTracing
开启视频帧渲染数据打点。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int StartMediaRenderingTracing();
详情
成功调用该方法后,SDK 会以调用该方法的时刻作为起点,并通过 FOnVideoRenderingTracingResult 回调报告视频帧渲染的相关信息。
- SDK 默认在成功加入频道的时刻起打点,自动开始跟踪视频频的渲染事件。你可以根据实际业务场景,在合适的时机调用该方法,进行自定义打点。
- 离开当前频道后,SDK 会自动重置该时间点为下一次成功加入频道的时刻。
适用场景
声网推荐你将该方法和 App 中的 UI 设置(按钮、滑动条等)结合使用,用于针对终端用户的体验改进。例如:在终端用户在点击 加入频道
按钮的时刻调用该方法进行打点,然后通过 FOnVideoRenderingTracingResult 回调获取视频帧渲染过程中的指标,从而针对指标进行专项优化。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
- -7: IRtcEngine 尚未初始化就调用方法。
StartMediaRenderingTracingEx
开启视频帧渲染数据打点。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int StartMediaRenderingTracingEx(const FRtcConnection& connection);
详情
成功调用该方法后,SDK 会以调用该方法的时刻作为起点,并通过 FOnVideoRenderingTracingResult 回调报告视频帧渲染的相关信息。
- SDK 默认在成功加入频道的时刻起打点,自动开始跟踪视频频的渲染事件。你可以根据实际业务场景,在合适的时机调用该方法,进行自定义打点。
- 离开当前频道后,SDK 会自动重置该时间点为下一次成功加入频道的时刻。
适用场景
声网推荐你将该方法和 App 中的 UI 设置(按钮、滑动条等)结合使用,用于针对终端用户的体验改进。例如:在终端用户在点击 加入频道
按钮的时刻调用该方法进行打点,然后通过 FOnVideoRenderingTracingResult 回调获取视频帧渲染过程中的指标,从而针对指标进行专项优化。
参数
- connection
- Connection 信息。详见 FRtcConnection。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
FOnVideoRenderingTracingResult
视频帧渲染事件回调。
DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FOnVideoRenderingTracingResult, int64, uid, EMEDIA_TRACE_EVENT, currentEvent, FVideoRenderingTracingInfo, tracingInfo);
详情
调用 StartMediaRenderingTracing 方法或加入频道后,SDK 会触发该回调,报告视频帧渲染的事件和渲染过程中的指标。开发者可以针对指标进行专项优化,以提高出图效率。
参数
- connection
- Connection 信息。详见 FRtcConnection。
- uid
- 用户 ID。
- currentEvent
- 当前视频帧渲染事件。详见 EMEDIA_TRACE_EVENT。
- tracingInfo
- 视频帧渲染过程中的指标。开发者需要尽可能降低指标值,以提高出图效率。详见 FVideoRenderingTracingInfo。