VideoCanvas
视频画布对象的属性。
Java
public class VideoCanvas {
public int uid;
public int subviewUid;
public static final int RENDER_MODE_HIDDEN = 1;
public static final int RENDER_MODE_FIT = 2;
public static final int RENDER_MODE_ADAPTIVE = 3;
public static final int VIEW_SETUP_MODE_REPLACE = 0;
public static final int VIEW_SETUP_MODE_ADD = 1;
public static final int VIEW_SETUP_MODE_REMOVE = 2;
public View view;
public SurfaceTexture surfaceTexture;
public int renderMode;
public int mirrorMode;
public int setupMode = VIEW_SETUP_MODE_REPLACE;
public int sourceType;
public int mediaPlayerId;
public Rect rect;
public boolean enableAlphaMask;
public int backgroundColor;
public Constants.VideoModulePosition position =
Constants.VideoModulePosition.VIDEO_MODULE_POSITION_POST_CAPTURER;
public VideoCanvas(View view) {
uid = 0;
this.view = view;
this.renderMode = RENDER_MODE_HIDDEN;
this.backgroundColor = 0;
}
public VideoCanvas(View view, int renderMode, int uid) {
this.uid = uid;
this.view = view;
this.renderMode = renderMode;
this.backgroundColor = 0;
}
public VideoCanvas(View view, int renderMode, int uid, int subviewUid) {
this.uid = uid;
this.subviewUid = subviewUid;
this.view = view;
this.renderMode = renderMode;
this.backgroundColor = 0;
}
}
uid
发布视频源的用户 ID。
当视频源为合图视频流 (VIDEO_SOURCE_TRANSCODED) 时,该参数表示发布合图视频流的用户 ID。
subviewUid
发布某一路合图子视频流的用户 ID。
view
视频显示窗口。必须为一个 SurfaceView 或 TextureView 对象。
注意
在一个 VideoCanvas 中,你只能选择 view 或 surfaceTexture 其中一个进行设置,如果同时设置,只有 view 中的设置会生效。
surfaceTexture
提供视频图像的容器,当你使用该成员时,需要自行实现 OPENGL 中的纹理绘制。详见 SurfaceTexture。
注意
在一个 VideoCanvas 中,你只能选择 view 或 surfaceTexture 其中一个进行设置,如果同时设置,只有 view 中的设置会生效。
renderMode
- RENDER_MODE_HIDDEN (1):优先保证视窗被填满。视频尺寸等比缩放,直至整个视窗被视频填满。如果视频长宽与显示窗口不同,多出的视频将被截掉。
- RENDER_MODE_FIT (2):优先保证视频内容全部显示。视频尺寸等比缩放,直至视频窗口的一边与视窗边框对齐。如果视频长宽与显示窗口不同,视窗上未被填满的区域将被涂黑。
- RENDER_MODE_ADAPTIVE (3):匹配模式。 废弃
- 该枚举已废弃,不推荐使用。
mirrorMode
- VIDEO_MIRROR_MODE_AUTO (0):SDK 决定镜像模式。如果你使用前置摄像头,默认启动本地视图镜像模式;如果你启用后置摄像头,默认关闭本地视图镜像模式。
- VIDEO_MIRROR_MODE_ENABLED (1):开启本地视图的镜像模式。
- VIDEO_MIRROR_MODE_DISABLED (2):关闭本地视图的镜像模式。
注意
- 本地视图镜像模式:如果你使用前置摄像头,默认启动本地视图镜像模式;如果你使用后置摄像头,默认关闭本地视图镜像模式。
- 远端用户视图镜像模式:默认关闭远端用户的镜像模式。
sourceType
视频源的类型,详见 VideoSourceType。
setupMode
视图设置模式:
- VIEW_SETUP_MODE_REPLACE (0): (默认) 替换一个视图。
- VIEW_SETUP_MODE_ADD (1): 增加一个视图。
- VIEW_SETUP_MODE_REMOVE (2): 删除一个视图。
mediaPlayerId
媒体播放器 ID。可通过 getMediaPlayerId 获取。
当 sourceType 为 VIDEO_SOURCE_MEDIA_PLAYER 时,此参数为必填项。
rect
backgroundColor
视频画布的背景颜色,格式为 RGBA。默认值为 0x00000000,代表完全透明的黑色。
enableAlphaMask
(可选)是否开启 Alpha 遮罩渲染:
true
:开启 Alpha 遮罩渲染。false
:(默认)关闭 Alpha 遮罩渲染。
Alpha 遮罩渲染可以创建具有透明效果的图像,还可以提取视频中的人像。与其他方法结合使用时,可以实现人像画中画、添加水印等效果。
position
视频帧在视频链路中的位置。详见 VideoModulePosition。