Flutter

最近更新时间:2025-03-03 17:11:42

我的收藏
为了减少包体大小,您可以将 SDK 所需的 so 库(Android 有,iOS 没有)、模型资源和素材资源(滤镜和贴纸)改为联网下载。
Android
iOS

SDK 集成

下载 SDK,解压,然后从"SDK"目录找到 .zip 格式的压缩包,再次解压,您将看到如下文件。将assets 里的模型文件和 jniLibs 里的 so 文件压缩包在您的服务器,然后联网下载使用。将libs下的xmagic-xxxx.aar复制到 android/app/libs文件夹下,并在app/build.gradle中的dependencies 添加api fileTree(dir: "libs", include: ['*.aar'])

20240516-205143@2x



动态加载 so

将 so 压缩包下载到应用安装目录下,并进行解压,然后调用TencentEffectApiAndroid对象的setLibPathAndLoad 方法加载so。
/**
* @param libPath 用于存放so的文件夹路径,比如: xxx/xxx/arm64-v8a 或者xxx/xxx/armeabi-v7a
**/
Future<bool> setLibPathAndLoad(String libPath);

动态加载模型

将模型文件下载到应用安装目录下,并进行解压,调用TencentEffectApiAndroid对象的addAiMode 将模型文件复制到指定目录下。
/**
* @param inputDir 要复制的文件夹的路径,这个指的是"Light3DPlugin", "LightCore", "LightHandPlugin", "LightBodyPlugin", "LightSegmentPlugin" 文件夹的路径
* @param resDir 这个路径要和 setResourcePath 方法设置的路径,要和这个保持一致。
* @param callBack 复制结果回调,0 表示复制成功
*/
void addAiMode(String inputDir, String resDir, AddAiModeCallBack callBack) ;

动态加载素材

素材文件自行下载,下载到 SD 卡或者安装目录下,并解压,使用素材的时候调用 setEffect 方法,resPath 参数填写素材路径即可。
注意:
1. 如果您是使用的demo中的面板,demo中的面板默认是使用的 setResourcePath的路径+json中配置的路径,所以在使用面板并动态下载素材的时候,需要将素材下载到 setResourcePath +json 配置文件的路径下。
2. 这里的素材指的是 滤镜资源和贴纸资源。

SDK 集成

下载 SDK,解压,如下图,frameworks是 SDK,resourcesmodel为模型文件,motionRes测试使用的素材。

打开您的 Xcode 工程项目,把 frameworks 文件夹里面的 xcframework 添加到实际工程中,选择要运行的 target , 选中 General 项,单击Frameworks,Libraries,and Embedded Content 项展开,单击底下的“+”号图标去添加依赖库。
添加 SDK:
XMagic.xcframeworkYTCommonXMagic.xcframeworklibpag.xcframeworkAudio2Exp.xcframeworkTECodec.xcframework
添加依赖库:
MetalPerformanceShaders.frameworkCoreTelephony.frameworkJavaScriptCore.frameworkVideoToolbox.frameworklibc++.tbd
根据需要添加其它工具库 Masonry.framework(控件布局库)、SSZipArchive(文件解压库)。


动态加载模型

将模型文件下载到沙盒下,并解压(例如:沙盒路径 Document/Xmagic)。在使用setResourcePath的时候设置这个路径即可,这样美颜在初始化的时候就可以使用到下载的模型文件。

动态加载素材

素材文件自行下载,下载文件并解压到沙盒,并解压,使用素材的时候调用 setEffect 方法,resPath 参数填写素材路径即可。
注意:
1. 如您是使用的 demo 中的面板,demo 中的面板默认是使用的 setResourcePath的路径+json中配置的路径,所以在使用面板并动态下载素材的时候,需要将素材下载到 setResourcePath +json 配置文件的路径下。
2. 这里的素材指的是 滤镜资源和贴纸资源。
注意:
模型文件需要在开启美颜之前处理,so 文件需要在鉴权之前处理,所以可以放在最早进行处理。