-
Notifications
You must be signed in to change notification settings - Fork 6
ImgTexMixer
buliaoyin edited this page Nov 22, 2017
·
4 revisions
直播推流时, 可能会有叠加水印, 叠加文字, 叠加背景图片等需求。
SDK内提供了 ImgTexMixer 类来实现图层间的混合功能。
-
该模块最大支持8个图层的混合;
-
每个输入图层有一个0-7的index值,该值越小则越靠下层;
-
每个输入图层均可单独设定绘制区域、透明度、缩放模式等参数;
-
需指定一个输入图层的index值可作为main index(默认为0), 图层混合的触发频率由该图层的刷新频率决定。
该模块包含8个ImgTexFrame类型的SinkPin, 以及一个ImgTexFrame类型的SrcPin.
/** * Get sink pin by index * * @param index index * @return SinPin object or null */ @Override public SinkPin<ImgTexFrame> getSinkPin(int index); /** * Get source pin * * @return SrcPin object or null */ @Override public SrcPin<ImgTexFrame> getSrcPin();
/** * 设置混合后输出的Texture的分辨率. */ public void setTargetSize(int outWidth, int outHeight); /** * 设置指定输入源在混合时的位置及透明度信息, 其中位置参数为以输出分辨率为参考的归一化值, * 一般取值范围为(0, 0, 1, 1). */ public void setRenderRect(int idx, RectF rect, float alpha); /** * 为指定输入源设置混合时的缩放模式,缩放模式支持 SCALING_MODE_FULL_FILL, * SCALING_MODE_BEST_FIT, SCALING_MODE_CENTER_CROP等. */ public void setScalingMode(int idx, int mode); /** * 设置是否在绘制指定输入源时,进行镜像绘制. */ public void setMirror(int idx, boolean mirror); /** * Set main input pin, generally the camera input * * @param index index of the main input pin, default 0 */ public final void setMainSinkPinIndex(int index);