tencent cloud

腾讯特效 SDK

文档腾讯特效 SDK功能实践性能调优EffectMode(高性能模式)使用指引

EffectMode(高性能模式)使用指引

下载
聚焦模式
字号
最后更新时间: 2026-07-17 15:15:08

EffectMode

从 SDK V3.9.0 开始,创建 SDK 时必须指定 EffectMode,它有两个取值: EffectMode_Normal 和 EffectMode_Pro。
EffectMode_Normal 等价于旧版本 SDK 的“高性能模式”。
EffectMode_Pro 等价于旧版本 SDK 的默认模式。
二者区别如下:


高性能模式

“高性能模式”是 SDK V3.9.0之前的概念,当时 SDK 有两种模式:高性能模式和默认模式。
从V3.9.0开始,高性能模式变成了 EffectMode_Normal,默认模式变成了 EffectMode_Pro。
高性能模式与默认模式的区别请参考上文中 EffectMode_Normal 和 EffectMode_Pro 的区别。

V3.9.0及之后如何设置 EffectMode

Android
iOS
Flutter
uniapp
方式一
如果您是直接使用的 XmagicApi 对象,那么请在创建 XmagicApi 对象时,在构造方法中指定 EffectMode:
public XmagicApi(Context context, EffectMode effectMode, String resDir)

public XmagicApi(Context context, EffectMode effectMode, String resDir, OnXmagicPropertyErrorListener xmagicPropertyErrorListener)
方式二
如果您是使用的 TEBeautyKit 对象,可以调用如下方法开启高性能模式。
public TEBeautyKit(Context context, EffectMode effectMode)

public static void create(@NonNull Context context, EffectMode effectMode, @NonNull OnInitListener initListener)
EffectMode 定义如下:
public enum EffectMode{
NORMAL(0),
PRO(1);
private final int value;
EffectMode(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
方式一
如果您是直接使用的 XMagic 对象,那么需要在初始化 XMagic 的时候指定 EffectMode,如下代码所示:
NSDictionary *assetsDict = @{@"core_name":@"LightCore.bundle",
@"root_path":[[NSBundle mainBundle] bundlePath],
@"effect_mode":@(effectMode)
};
self.xmagic = [[XMagic alloc] initWithRenderSize:CGSizeMake(720, 1280) assetsDict:assetsDict];
方式二
如果您是使用的 TEBeautyKit 对象,请在调用 createXMagic 方法时传入 EffectMode 参数。
+ (void)createXMagic:(EffectMode)effectMode onInitListener:(OnInitListener _Nullable )onInitListener;
EffectMode 的定义如下:
typedef NS_ENUM(NSInteger, EffectMode) {
EFFECT_MODE_NORMAL = 0,
EFFECT_MODE_PRO = 1,
};
可以通过调用 TencentEffectApi 的 setDowngradePerformance 方法开启。
注意:
此方法需要在开启美颜之前调用,也就是 TRTC 或者 Live 中的 enableCustomVideoProcess 方法之前调用。
可以通过调用 XmagicApi 的 setDowngradePerformance 方法开启。
注意:
此方法需要在开启美颜之前调用,也就是在 enableCustomVideoProcess 方法之前调用。

V3.9.0之前如何开启高性能模式

Android
iOS
Flutter
uniapp
方式一
如果您是直接使用的 XmagicApi 对象,那么请在创建 XmagicApi 对象之后立即调用以下接口开启高性能模式:
SDK 3.7.0及以后:调用 enableHighPerformance 方法。
SDK 3.7.0以前:调用 setDowngradePerformance 方法。
方式二
如果您是使用的 TEBeautyKit 对象,可以调用如下方法开启高性能模式。
/**
* @param context 应用上下文
* @param isEnableHighPerformance 是否开启高性能模式
*/
public TEBeautyKit(Context context, boolean isEnableHighPerformance)
/**
*
* 异步创建TEBeautyKit对象
* @param context Android应用上下文
* @param isEnableHighPerformance 是否开启高性能模式
* @param initListener 初始化回调接口
*/
public static void create(@NonNull Context context, boolean isEnableHighPerformance, @NonNull OnInitListener initListener)
方式一
如果您是直接使用的 XMagic 对象,那么可以在初始化 XMagic 的时候开启:
SDK 3.7.0及以后:请在 assetsDict 字典中将 enableHighPerformance 设置为 YES。
SDK 3.7.0以前:请在 assetsDict 字典中将 setDowngradePerformance 设置为 YES。
NSDictionary *assetsDict = @{
@"core_name":@"LightCore.bundle",
@"root_path":[NSBundle mainBundle] bundlePath],
@"setDowngradePerformance":@(YES)//YES:开启高性能模式,NO:不开启高性能模式。默认不开启高性能模式。
};
self.xmagic = [[XMagic alloc] initWithRenderSize:CGSizeMake(720, 1280) assetsDict:assetsDict];

方式二
如果您是使用的 TEBeautyKit 对象,可以调用如下方法开启高性能模式。
/**
*
* 创建TEBeautyKit对象
* @param isEnableHighPerformance 是否开启高性能模式。YES:开启高性能模式;NO:不开启高性能模式
* @param initListener 初始化回调接口
*/
+ (void)create:(BOOL)isEnableHighPerformance onInitListener:(OnInitListener _Nullable )onInitListener;

可以通过调用 TencentEffectApi 的 setDowngradePerformance 方法开启。
注意:
此方法需要在开启美颜之前调用,也就是 TRTC 或者 Live中的 enableCustomVideoProcess 方法之前调用。
可以通过调用 XmagicApi 的 setDowngradePerformance 方法开启。
注意:
此方法需要在开启美颜之前调用,也就是在 enableCustomVideoProcess 方法之前调用。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈