tencent cloud

腾讯特效 SDK

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

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

Download
聚焦模式
字号
最后更新时间: 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,
};
可以通过调用 TencentEffectApisetDowngradePerformance 方法开启。
注意:
此方法需要在开启美颜之前调用,也就是 TRTC 或者 Live 中的 enableCustomVideoProcess 方法之前调用。
可以通过调用 XmagicApisetDowngradePerformance 方法开启。
注意:
此方法需要在开启美颜之前调用,也就是在 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;

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


帮助和支持

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

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

文档反馈