视频渲染
CreateRendererView
创建 RendererView。
public static SurfaceView CreateRendererView(Context context) {
return new SurfaceView(context);
此方法已废弃。请使用 Android 原生的 SurfaceView
。
该方法创建视频 RendererView,返回 SurfaceView 的类型。 View 的操作和布局由 app 管理,SDK 在 app 提供的 View 上进行渲染。 显示视频视图必须调用该方法,而不是直接调用 SurfaceView。
如果你需要使用 SurfaceView,请调用本方法;如果你需要使用 TextureView,请调用 CreateTextureView
方法。
注意: 请在主线程调用该方法。
参数
参数名 | 描述 |
---|---|
context | 安卓活动 (Android Activity) 的上下文。 |
返回值
SurfaceView
所属接口类CreateTextureView
创建 TextureView。
public static TextureView CreateTextureView(Context context) {
return new TextureView(context);
此方法已废弃。请使用 Android 原生的 TextureView
。
该方法创建 TextureView,适用于需要对视频画面进行缩放、旋转和平移的场景,如屏幕共享。View 的操作和布局由 app 管理,SDK 仅在 app 提供的 View 上进行渲染。
如果你需要使用 TextureView,请调用本方法;如果你需要使用 SurfaceView,请调用 CreateRendererView
方法。
注意: 请在主线程调用该方法。
参数
参数名 | 描述 |
---|---|
context | 安卓活动 (Android Activity) 的上下文。 |
返回值
TextureView
所属接口类enableInstantMediaRendering
setLocalRenderMode [1/2]
设置本地视图显示模式。
public abstract int setLocalRenderMode(int renderMode);
该方法已废弃,请使用 setLocalRenderMode [2/2]
作为替代。
该方法设置本地视图显示模式。 App 可以多次调用此方法更改显示模式。
参数
参数名 | 描述 |
---|---|
renderMode | 本地视图显示模式。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setLocalRenderMode [2/2]
更新本地视图显示模式。
public abstract int setLocalRenderMode(int renderMode, int mirrorMode);
初始化本地用户视图后,你可以调用该方法更新本地用户视图的渲染和镜像模式。该方法只影响本地用户看到的视频画面,不影响本地发布视频。
注意:
-
请在调用
setupLocalVideo
方法初始化本地视图后,调用该方法。 -
你可以在通话中多次调用该方法,多次更新本地用户视图的显示模式。
参数
参数名 | 描述 |
---|---|
renderMode | 本地视图显示模式。
|
mirrorMode | 本地视图的镜像模式。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setLocalVideoMirrorMode
设置本地视频镜像。
public abstract int setLocalVideoMirrorMode(int mode);
该方法已废弃。
参数
参数名 | 描述 |
---|---|
mode |
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setRemoteRenderMode [1/2]
设置远端视图显示模式。
public abstract int setRemoteRenderMode(int userId, int renderMode);
该方法已废弃,请使用 setRemoteRenderMode [2/2]
。
该方法设置远端视图显示模式。App 可以多次调用此方法更改显示模式。
参数
参数名 | 描述 |
---|---|
userId | 远端用户 ID。 |
renderMode | 远端用户视图的渲染模式。
|
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
setRemoteRenderMode [2/2]
更新远端视图显示模式。
public abstract int setRemoteRenderMode(int userId, int renderMode, int mirrorMode);
初始化远端用户视图后,你可以调用该方法更新远端用户视图在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画面。
注意:
-
请在调用
setupRemoteVideo
方法初始化远端视图后,调用该方法。 -
你可以在通话中多次调用该方法,多次更新远端用户视图的显示模式。
参数
参数名 | 描述 |
---|---|
userId | 远端用户 ID。 |
renderMode | 远端用户视图的渲染模式。
|
mirrorMode | 远端用户视图的镜像模式。
|
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
setRemoteRenderModeEx
设置远端视图显示模式。
public abstract int setRemoteRenderModeEx(
int uid, int renderMode, int mirrorMode, RtcConnection connection);
初始化远端用户视图后,你可以调用该方法更新远端用户视图在本地显示时的渲染和镜像模式。该方法只影响本地用户看到的视频画面。 注意:
-
请在调用
setupRemoteVideo
方法初始化远端视图后,调用该方法。 -
你可以在通话中多次调用该方法,多次更新远端用户视图的显示模式。
参数
参数名 | 描述 |
---|---|
uid | 远端用户 ID。 |
renderMode | 远端视图显示模式:
|
mirrorMode | 远端用户视图的镜像模式:
|
connection | Connection 信息。详见 |
返回值
- < 0:方法调用失败。详见
错误码
了解详情和解决建议。
setRenderMode
设置播放器视图的渲染模式。
int setRenderMode(int mode);
参数
参数名 | 描述 |
---|---|
mode | 播放器视图的渲染模式:
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setupLocalVideo
初始化本地视图。
public abstract int setupLocalVideo(VideoCanvas local);
该方法初始化本地视图并设置本地用户视频显示属性,只影响本地用户看到的视频画面,不影响本地发布视频。调用该方法绑定本地视频流的显示视窗(view
),并设置本地用户视图的渲染模式和镜像模式。
在 App 开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入频道。退出频道后,绑定仍然有效,如果需要解除绑定,可以调用该方法将参数 view
设为 NULL。
注意:
-
该方法在加入频道前后都能调用。
-
如果你希望在通话中更新本地用户视图的渲染或镜像模式,请使用
setLocalRenderMode [2/2]
方法。
参数
参数名 | 描述 |
---|---|
local | 本地视频显示属性。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
setupRemoteVideo
初始化远端用户视图。
public abstract int setupRemoteVideo(VideoCanvas remote);
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。
调用该方法时需要指定远端视频的用户 ID,一般可以在进频道前提前设置好。如果无法在加入频道前得到远端用户的 ID,可以在收到 onUserJoined
回调时调用该方法。
如需解除某个远端用户的绑定视图,可以调用该方法并将 view
设置为空。
离开频道后,SDK 会清除远端用户视图的绑定关系。
注意:
-
如果你希望在通话中更新远端用户视图的渲染或镜像模式,请使用
setRemoteRenderMode [2/2]
方法。 -
如果你使用了录制服务,录制服务会作为一个哑客户端加入频道,因此也会触发
onUserJoined
回调。由于录制服务不会发送视频流,app 无需为它绑定视图。如果 app 无法识别哑客户端,可以在收到onFirstRemoteVideoDecoded
回调时再绑定远端用户视图。
参数
参数名 | 描述 |
---|---|
remote | 远端视频显示属性。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
setupRemoteVideoEx
初始化远端用户视图。
public abstract int setupRemoteVideoEx(VideoCanvas remote, RtcConnection connection);
该方法绑定远端用户和显示视图,并设置远端用户视图在本地显示时的渲染模式和镜像模式,只影响本地用户看到的视频画面。
调用该方法时需要在 VideoCanvas
中指定远端视频的用户 ID,一般可以在进频道前提前设置好。
如果无法在加入频道前得到远端用户的 uid,可以在收到 onUserJoined
回调时调用该方法。如果启用了视频录制功能,视频录制服务会做为一个哑客户端加入频道,因此其他客户端也会收到它的 onUserJoined
事件, app 不应给它绑定视图(因为它不会发送视频流)。
如需解除某个远端用户的绑定视图,可以调用该方法并将 view
设置为空。
离开频道后,SDK 会清除远端用户视图的绑定关系。
注意:
如果你希望在通话中更新远端用户视图的渲染或镜像模式,请使用 setRemoteRenderModeEx
方法。
参数
参数名 | 描述 |
---|---|
remote | 视频画布信息。详见 |
connection | Connection 信息。详见 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见
错误码
了解详情和解决建议。
startMediaRenderingTracing
开启视频帧渲染数据打点。
public abstract int startMediaRenderingTracing();
v4.1.1
成功调用该方法后,SDK 会以调用该方法的时刻作为起点,并通过 onVideoRenderingTracingResult
回调报告视频帧渲染的相关信息。
注:
-
SDK 默认在成功加入频道的时刻起打点,自动开始跟踪视频频的渲染事件。你可以根据实际业务场景,在合适的时机调用该方法,进行自定义打点。
-
离开当前频道后,SDK 会自动重置该时间点为下一次成功加入频道的时刻。
返回值
所属接口类startMediaRenderingTracingEx
开启视频帧渲染数据打点。
public abstract int startMediaRenderingTracingEx(RtcConnection connection);
v4.1.1
成功调用该方法后,SDK 会以调用该方法的时刻作为起点,并通过 onVideoRenderingTracingResult
回调报告视频帧渲染的相关信息。
注:
-
SDK 默认在成功加入频道的时刻起打点,自动开始跟踪视频频的渲染事件。你可以根据实际业务场景,在合适的时机调用该方法,进行自定义打点。
-
离开当前频道后,SDK 会自动重置该时间点为下一次成功加入频道的时刻。
参数
参数名 | 描述 |
---|---|
connection | Connection 信息。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
onVideoRenderingTracingResult
视频帧渲染事件回调。
public void onVideoRenderingTracingResult(int uid,
Constants.MEDIA_RENDER_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo) {}
v4.1.1
调用 startMediaRenderingTracing
方法或加入频道后,SDK 会触发该回调,报告视频帧渲染的事件和渲染过程中的指标。开发者可以针对指标进行专项优化,以提高出图效率。
参数
参数名 | 描述 |
---|---|
uid | 用户 ID。 |
currentEvent | 当前视频帧渲染事件。详见 |
tracingInfo | 视频帧渲染过程中的指标。开发者需要尽可能降低指标值,以提高出图效率。详见 |