更新记录
3.6.0.4(2024-04-24) 下载此版本
重新更新文档,修改发布iOS 底库为动态库
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 14.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:11 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
功能说明
由于腾讯特效SDK支持Android和iOS平台,所以可以在uniapp端进行桥接处理,在用户通过uniapp开发Android或者iOS应用时,也可以通过此插件将腾讯特效的功能添加进应用内。实现对相机画面的实时美颜处理,效果包括美颜、美体、动效、分割等。
注意:相机画面需要使用TRTC(腾讯RTC).
集成指引
本地原生插件集成
-
下载并解压 [TencentEffect_UniApp]()。
-
找到 TencentEffect_UniApp/SDK/nativeplugins 目录下的 TencentEffectUniPlugin-XmagicPluginImpl 文件夹拷贝到自己项目工程的 nativeplugins 目录下。如下图所以位置 :
- 在自己项目工程的 manifest.json 中配置原生插件,选择本地插件 TencentEffectUniPlugin-XmagicPluginImpl。
云端原生插件集成
在自己项目工程的 manifest.json 中配置原生插件,选择云端插件 TencentEffectUniPlugin-XmagicPluginImpl。
js代码集成
- 把 SDK/js 目录下的 XMagic 文件夹拷贝到自己项目工程中。
美颜素材添加
Android:把在官网中下载的美颜素材拷贝到自己项目工程的 nativeResources/android/assets 目录下。
iOS:把在官网中下载的美颜资源和美颜模型拷贝到自己项目工程的 nativeResources/ios/Resources 目录下。
不同套餐,添加的美颜模型和美颜素材不一样。(详见 美颜官网)
- 添加腾讯特效 SDK
Android:通过 maven 依赖美颜特效 SDK,需要更改美颜套餐或者美颜版本,可手动修改nativeplugins/TencentEffectUniPlugin-XmagicPluginImpl/package.json
中dependencies
字段中腾讯特效 SDK 的 maven [地址]()。
iOS:下载腾讯特效 SDK 后,把里面的 XMagic.framework、YTCommonXMagic.framework、TECodec.framework、libpag.framework 拷贝到nativeplugins/TencentEffectUniPlugin-XmagicPluginImpl/ios
中。
使用指引
注:此美颜插件需要和 TRTC 插件结合使用:
1.复制美颜资源
接口:copyXmaigcRes
描述:复制美颜资源。
app 首次安装使用时,需要调用此接口把美颜资源复制到沙盒,每个版本仅需要成功调用一次即可。
2.美颜鉴权
接口:setLicense
描述:使用 bundleId、licenseUrl、licenseKey 进行美颜鉴权。
app 启动以后,需要成功鉴权以后才能使用美颜功能。
3.开启或关闭美颜
接口:enableCustomVideoProcess
描述:调用此接口来开启或关闭美颜。
4.设置美颜属性
V0.3.5.0版本
接口:setEffect
描述:设置美颜属性
美颜属性包括美颜、美体、滤镜、动效(2D 动效、3D 动效、手势动效、趣味动效)、美妆、分割。设置不同的属性需要在调用此接口时传入不同的参数,
具体参见 美颜参数表 和 demo。
V0.3.3.0版本
接口:updateProperty
描述:设置美颜属性。
美颜属性包括美颜、美体、滤镜、动效(2D 动效、3D 动效、手势动效、趣味动效)、美妆、分割。设置不同的属性需要在调用此接口时传入不同的参数,具体参数请参考下表和demo。
字段 | 美颜 | 滤镜 | 美体 | 动效贴纸 | 分割 | 美妆 |
---|---|---|---|---|---|---|
category | Category.BEAUTY | Category.LUT | Category.BODY_BEAUTY | Category.MOTION | Category.SEGMENTATION | Category.MAKEUP |
id | 参考 PropertyIds 类 | 滤镜资源名称 例如:baixi_lf.png | 无 | 贴纸资源的名称。例如:video_keaituya | 分割资源的名称 例如:video_segmentation_blur_45 | 美妆资源名称 例如:video_nvtuanzhuang |
resPath | 参考 Android 参数表中的 单点妆容 中的 resPath 字段 | 滤镜资源的路径 例如:light_material/lut/baixi_lf.png | 无 | 贴纸资源名称。例如:MotionRes/2dMotionRes/video_keaituya | 分割资源路径。 例如:MotionRes/segmentMotionRes/video_segmentation_blur_45 | 美妆资源路径 例如: MotionRes/makeupRes/video_nvtuanzhuang |
effKey | 参考 EffectName 类 | 无 | 参考 EffectName 类 | 无 | 无 | 无 |
effValue | 取值范围为0 - 1或者是-1 - 1参考Android 参数表,如果 displayMinValue 和 displayMaxValue 值为0 - 100,那么此处的范围是0 - 1,如果是-100 - 100,那么此处的值为-1 - 1 | 0 - 1 | 0 - 1 | 无 | 无 | 0 - 1 |
5.暂停美颜
接口:onPause
描述:暂停美颜。
6.恢复美颜
接口:onResume
描述:恢复美颜接口。
API详解
setResPath
设置资源存放的路径,用于把美颜资源复制到此路径下,如果不设置此路径,SDK 内部会有一个默认路径。
/**
* 设置存放美颜资源的路径,
* @param {String} resourceDir 用于存放美颜资源的路径文件夹(绝对路径),可参考demo
*/
static setResPath(resourceDir)
参数
参数 | 含义 |
---|---|
resourceDir | 资源文件放置的目录 |
copyXmaigcRes
用于复制美颜资源。
/**
* 用于复制美颜资源
* @param {Function(result)} callback result===true表示成功,false 表示失败
*/
static copyXmaigcRes(callback)
参数
参数 | 含义 |
---|---|
callback | 由于资源复制是耗时任务,处理完成之后通过此接口回调结果 |
setLicense
进行美颜鉴权,app 启动之后,需要成功鉴权一次才能使用美颜功能。
/**
* 鉴权
* @param {String} licenseUrl
* @param {String} licenseKey
* @param {Function(code,message)} callback code===0表示成功,其他错误码请参考
*/
static setLicense(licenseUrl, licenseKey, callback)
参数
参数 | 含义 |
---|---|
licenseUrl | 官网申请的用于美颜鉴权的 licenseUrl |
licenseKey | 官网申请的用于美颜鉴权的 licenseKey |
callback | 鉴权结果回调方法,code==0表示鉴权成功 |
setLogLevel
设置 native SDK 的日志级别。
/**
* 设置日志级别
* @param {number} logLevel 参见{@link LogLevel}
*/
static setLogLevel(logLevel)
参数 | 含义 |
---|---|
logLevel | 日志级别,具体参考 SDK 中的 LogLevel |
enableCustomVideoProcess
开启或关闭美颜。
/**
* 打开或关闭美颜
* @param {boolean} enable
* @returns
*/
static enableCustomVideoProcess(enable)
参数 | 含义 |
---|---|
enable | 开启或关闭美颜,true 表示开启美颜,false 表示关闭美颜 |
onResume
恢复美颜处理。
static ()
onPause
暂停美颜处理。
static onPause()
setEffect(V0.3.5.0新增)
设置美颜、美型、滤镜、美妆、贴纸、分割等效果,可在任意线程调用。具体参数请参考 [美颜参数说明]()。
/**
* 更新美颜对象
* @param effect 对象结构如下
* {
* effectName:"",不为空的字符串,参考美颜参数表
* effectValue: 数值,一般为-100---100的值,可参考官网的美颜参数表
* resourcePath: 资源文件的路径,请参考美颜参数表 https://cloud.tencent.com/document/product/616/103616
* extraInfo:一个map集合,具体数值请参考美颜参数表
* }
*/
static setEffect(effect)
updateProperty
设置美颜属性。
/**
* 设置美颜属性
* @param {null} property
*/
static updateProperty(property)
参数 | 含义 |
---|---|
property | 美颜参数信息,具体参数请参见 美颜参数说明 Android 和 美颜参数说明 iOS |
enableEnhancedMode
开启美颜增强模式。默认未开启。
未开启时,应用层可以设置的各美颜项的强度范围为0到1或-1到1,如果超出此范围,SDK 会取边界值。例如应用层设置瘦脸为1.2,SDK 判断其超出了最大值1.0,则在内部把瘦脸值修正为1.0。
开启增强模式后,应用层可以设置更大范围的数值。例如想要瘦脸程度更大,则可以把瘦脸值设置为1.2,SDK 会接受并使用1.2这个数值,不会将其修正为1.0。
开启增强模式后,需要应用层自己管理每个美颜项可以设置的最大值,让用户在此范围内调整数值。我们提供了一份参考值,您可以根据产品需求自由调整,但不建议超出我们的推荐值,否则美颜效果可能变差。参考值见下:
美颜项名称 | 增强模式下,建议的最大值(放大倍数) |
---|---|
美白,短脸,V脸,眼距,鼻子位置,祛法令纹,口红,立体 | 1.3 |
亮眼 | 1.5 |
腮红 | 1.8 |
其他 | 1.2 |
/**
* 开启增强模式
*/
static enableEnhancedMode()
setDowngradePerformance
调用此方法开启高性能模式。高性能模式开启后,美颜占用的系统 CPU/GPU 资源更少,可减少手机的发热和卡顿现象,更适合低端机长时间使用。
/**
* 开启性能模式,如果要使用此方法,此方法需要在 enableCustomVideoProcess 方法之前调用
*/
static setDowngradePerformance()
setAudioMute
设置静音。
/**
* 设置静音
*/
static setAudioMute(isMute)
参数 | 含义 |
---|---|
isMute | true:静音 |
setFeatureEnableDisable
调用此方法开启高性能模式。高性能模式开启后,美颜占用的系统 CPU/GPU 资源更少,可减少手机的发热和卡顿现象,更适合低端机长时间使用。
/**
* 开启性能模式,如果要使用此方法,此方法需要在 enableCustomVideoProcess 方法之前调用
*/
static setDowngradePerformance(feature)
参数 | 含义 |
---|---|
feature | feature 为 object 对象,key 的值参考 SDK 中的 FeatureName 对象,value 设置为 true 开启,false 关闭 |
addAiMode
设置模型文件,入股模型文件是动态下载的,则需要在下载成功之后通过此接口将模型文件设置为 SDK,下次启动时不需要再设置。
/**
*设置模型文件路径、
*
* @param {String} aiModePath 模型文件路径(绝对路径)
* @param callback
*/
static addAiMode(aiModePath, callback)
参数 | 含义 |
---|---|
aiModePath | 模型文件路径(绝对路径) |
callback | 结果回调方法 |
setLibPathAndLoad
设置网络下载的 so 文件,只支持 Android 平台。
/**
* 动态加载网络下载的so文件,这里只需要出入存放so的文件夹即可
* @param {String} soDir 下载好的so文件的存放目录路径
*/
static setLibPathAndLoad(soDir)
参数 | 含义 |
---|---|
soDir | soDir 下载好的 so 文件的存放目录路径 |
on
订阅 SDK 返回的事件。
/**
* 订阅回调事件
*
* @param {String} event 事件名称
* @param {Function} callback 事件名称以及回到方法可参考 {@link EventName}
*/
static on(event, callback)
参数 | 含义 |
---|---|
event | 事件名称,可以参考 EventName 类,订阅对应的事件 |
callback | SDK 通过此方法将订阅的事件返回给 JS 侧 |
off
取消对应的事件。
/**
* 取消回调事件
*
* @param {String} event 事件名称 可参考 {@link EventName}
*/
static off(event)
参数 | 含义 |
---|---|
event | 事件名称,可以参考 EventName 类 |