由于 Flutter 端的 GL 环境与原生端环境进行了隔离,所以 Flutter 中接入美颜时无法直接建立绑定关系,需要在原生端进行关系的绑定,如下图所示:
美颜侧定义的接口:
public interface ITXCustomBeautyProcesserFactory {
/**
* 创建美颜实例
* @return
*/
ITXCustomBeautyProcesser createCustomBeautyProcesser();
/**
* 销毁美颜实例(需要在GL线程调用)
*/
void destroyCustomBeautyProcesser();
}
public interface ITXCustomBeautyProcesser {
//获取美颜支持的视频帧的像素格式。美颜支持的是:OpenGL 2D 纹理。
TXCustomBeautyPixelFormat getSupportedPixelFormat();
//获取美颜支持的视频数据包装格式。美颜支持的是:V2TXLiveBufferTypeTexture 直接操作纹理 ID,性能最好,画质损失最少。
TXCustomBeautyBufferType getSupportedBufferType();
//在GL线程调用(srcFrame中需要包含RGBA纹理,以及width,height),美颜处理之后会将处理后的纹理对象放置在dstFrame中的 texture.textureId中。
void onProcessVideoFrame(TXCustomBeautyVideoFrame srcFrame, TXCustomBeautyVideoFrame dstFrame);
}
com.tencent.effect.tencent_effect_flutter.XmagicProcesserFactory
注册进 TRTC 中(在原生端进行)。Flutter
层,提供 Future<v2txlivecode> enableCustomVideoProcess(bool enable)
接口进行开启或关闭自定义美颜接口。美颜提供的抽象层依赖
///
implementation 'com.tencent.liteav:custom-video-processor:latest.release'
本页内容是否解决了您的问题?