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

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 方法之前调用。