准备工作
1. 开发环境
Android Studio(2022及以上版本)
Android SDK Tools:android-sdk 29 及以上
minSdkVersion:21
targetSdkVersion:29
2. 下载 SDK
3. 申请 License
初始化 SDK
1. 在工程中添加依赖
将下载的 tavmagic_x.x.x.x.aar 拷贝至 Android Application 工程的 libs 目录下。随后打开对应模块的
build.gradle,添加依赖引用:dependencies{...implementation fileTree(dir: 'libs', include: ['*.jar','*.aar']) // 将.jar和.aar格式依赖库依赖进工程// 添加对libpag的依赖implementation "com.tencent.tav:libpag:4.4.35-harfbuzz"}
2. 设置 License 鉴权
// 在Application初始化时设置LicenseTELicenseCheck.getInstance().setTELicense(context, TAV_MAGIC_LICENSE, TAV_MAGIC_KEY, (errorCode, msg) ->Log.v(TAG, String.format("auth check result, errorCode: %d, msg: %s", errorCode, msg));
鉴权 errorCode 说明:
错误码 | 说明 |
0 | 成功。 |
-1 | 输入参数无效,例如 URL 或 KEY 为空。 |
-3 | 下载环节失败,请检查网络设置。 |
-4 | 从本地读取的 TE 授权信息为空,可能是 IO 失败引起。 |
-5 | 读取 VCUBE TEMP License文件内容为空,可能是 IO 失败引起。 |
-6 | v_cube.license 文件 JSON 字段不对。请联系腾讯云团队处理。 |
-7 | 签名校验失败。请联系腾讯云团队处理。 |
-8 | 解密失败。请联系腾讯云团队处理。 |
-9 | TELicense 字段里的 JSON 字段不对。请联系腾讯云团队处理。 |
-10 | 从网络解析的 TE 授权信息为空。请联系腾讯云团队处理。 |
-11 | 把 TE 授权信息写到本地文件时失败,可能是 IO 失败引起。 |
-12 | 下载失败,解析本地 asset 也失败。 |
-13 | 鉴权失败,请检查 so 是否在包里,或者已正确设置 so 路径。 |
3004/3005 | 无效授权。请联系腾讯云团队处理。 |
3015 | Bundle Id / Package Name 不匹配。检查您的 App 使用的 Bundle Id / Package Name 和申请的是否一致,检查是否使用了正确的授权文件。 |
3018 | 授权文件已过期,需要向腾讯云申请续期。 |
其他 | 请联系腾讯云团队处理。 |
3. 初始化 SDK
1. 资源拷贝:将 assets 中的资源文件拷贝到应用数据目录。
// 在InitUtil中实现的拷贝逻辑private static void copyAssets() {String currentVersion = getAppVersion();if (!TextUtils.equals(getSavedVersionCode(), currentVersion)) {new File(mSdkAssetPath).mkdirs();FileUtil.copyAssets(mAppContext, "resource", mResourcePath);TAVMagicBase.installAIModelFilesFromAssets(mAppContext, mSdkAssetPath);saveVersionCode(currentVersion);}}
2. SDK 初始化:调用 initSDK 完成初始化。
// 初始化SDK并配置参数(使用静态库)boolean loadRet = TAVMagicBase.initSDK(mAppContext, mSdkAssetPath);// 或者使用动态库初始化(可选)boolean loadRet = TAVMagicBase.initSDK(mAppContext, mSdkAssetPath, "/path/to/dynamic/libs");// 设置日志级别(可选)TAVMagicBase.setLogLevel(Log.VERBOSE);// 配置缩略图缓存(可选)int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);int cacheSize = maxMemory / 4;TAVMagicBase.setThumbnailMemoryCacheSize(cacheSize);