腾讯特效SDKFlutter_音视频解决方案_同尘科技
步骤1:美颜资源下载与集成
根据您购买的套餐 下载 SDK,添加文件到自己的工程中:AndroidiOS1. 在 app 模块下找到 build.gradle 文件,添加您对应套餐的 maven 引用地址。例如您选择的是S1-04套餐,则添加如下:
dependencies { implementation 'com.tencent.mediacloud:TencentEffect_S1-04:latest.release' }
各套餐对应的 maven 地址,请参见 文档。2. 在 app 模块下找到 src/main/assets 文件夹,如果没有则创建,检查下载的 SDK 包中是否有 MotionRes 文件夹,如果有则将此文件夹拷贝到 ../src/main/assets
目录下。3. 在 app 模块下找到 AndroidManifest.xml 文件,在 application 标签内添加如下标签。
//此处的true 表示如果没有此库,则应用将无法正常运行。系统不允许在没有此库的设备上安装应用。 //false表示应用可以使用此库(如果存在),但专门在没有此库的情况下运行(如果有必要)。系统允许安装应用,即使不存在此库也是如此。如果您使用 "false",则需要自行负责妥善处理库不存在的情况。 //Android 官网介绍:https://developer.android.com/guide/topics/manifest/uses-native-library-element
添加后如下图:
4. 混淆配置如果您在打 release 包时,启用了编译优化(把 minifyEnabled 设置为 true),会裁掉一些未在 java 层调用的代码,而这些代码有可能会被 native 层调用,从而引起
no xxx method
的异常。如果您启用了这样的编译优化,那就要添加这些 keep 规则,防止 xmagic 的代码被裁掉:
-keep class com.tencent.xmagic.** { *;}-keep class org.light.** { *;}-keep class org.libpag.** { *;}-keep class org.extra.** { *;}-keep class com.gyailib.**{ *;}-keep class com.tencent.cloud.iai.lib.** { *;}-keep class com.tencent.beacon.** { *;}-keep class com.tencent.qimei.** { *;}-keep class androidx.exifinterface.** { *;}
1. 添加美颜资源到您的工程,添加后如下图(您的资源种类跟下图不完全一致):
2. 在 Demo 中把 demo/lib/producer 里面的4个类:BeautyDataManager、BeautyPropertyProducer、BeautyPropertyProducerAndroid 和 BeautyPropertyProducerIOS 复制添加到自己的 Flutter 工程中,这4个类是用来配置美颜资源,把美颜类型展示在美颜面板中。
步骤2:引用 Flutter 版本 SDK
在工程的 pubspec.yaml 文件中添加如下引用:
tencent_effect_flutter: git: url: https://github.com/TencentCloud/tencenteffect-sdk-flutter
本地引用:从tencent_effect_flutter下载最新版本的tencent_effect_flutter,然后把文件夹android、ios、lib和文件pubspec.yaml、tencent_effect_flutter.iml添加到工程目录下,然后在工程的pubspec.yaml文件中添加如下引用:(可参考demo)
tencent_effect_flutter: path: ../
tencent_effect_flutter只是提供一个桥接,里面依赖的XMagic默认是最新版的,真正实现美颜是XMagic。如果要使用最新版本的美颜SDK,您可以通过以下步骤进行SDK升级:AndroidiOS在工程目录下执行命令:flutter pub upgrade或者在subspec.yaml页面的右上角点击Pub upgrade在工程目录下执行命令:flutter pub upgrade,然后在ios目录下执行命令:pod update
步骤3:与直播关联
AndroidiOS在应用的 application 类的 oncreate 方法(或 FlutterActivity 的 onCreate 方法)中添加如下代码:
TXLivePluginManager.register(new XmagicProcesserFactory());
在应用的 AppDelegate 类中的 didFinishLaunchingWithOptions 方法里面中添加如下代码:
XmagicProcesserFactory *instance = [[XmagicProcesserFactory alloc] init];[TXLivePluginManager registerWithCustomBeautyProcesserFactory:instance];
添加后如下图:
步骤4:调用资源初始化接口
String dir = await BeautyDataManager.getInstance().getResDir(); TXLog.printlog('文件路径为:$dir'); TencentEffectApi.getApi()?.initXmagic(dir,(reslut) { _isInitResource = reslut; callBack.call(reslut); if (!reslut) { Fluttertoast.showToast(msg: "初始化资源失败"); } }); TencentEffectApi.getApi()?.initXmagic((reslut) { if (!reslut) { Fluttertoast.showToast(msg: "初始化资源失败"); } });
步骤5:进行美颜授权
TencentEffectApi.getApi()?.setLicense(licenseKey, licenseUrl, (errorCode, msg) { TXLog.printlog("打印鉴权结果 errorCode = $errorCode msg = $msg"); if (errorCode == 0) { //鉴权成功 } });
步骤6:开启美颜
///开启美颜操作var enableCustomVideo = await _livePusher?.enableCustomVideoProcess(true);
步骤7:设置美颜属性
TencentEffectApi.getApi()?.updateProperty(_xmagicProperty!);///_xmagicProperty 可通过 BeautyDataManager.getInstance().getAllPannelData();获取所有的属性,需要使用美颜属性的时候可通过updateProperty方法设置属性。
步骤8:设置其他属性
暂停美颜音效
TencentEffectApi.getApi()?.onPause();
恢复美颜音效
TencentEffectApi.getApi()?.onResume();
监听美颜事件
TencentEffectApi.getApi() ?.setOnCreateXmagicApiErrorListener((errorMsg, code) { TXLog.printlog("创建美颜对象出现错误 errorMsg = $errorMsg , code = $code"); }); ///需要在创建美颜之前进行设置
设置人脸、手势、身体检测状态回调
TencentEffectApi.getApi()?.setAIDataListener(XmagicAIDataListenerImp());
设置动效提示语回调函数
TencentEffectApi.getApi()?.setTipsListener(XmagicTipsListenerImp());
设置人脸点位信息等数据回调(S1-05 和 S1-06 套餐才会有回调)
TencentEffectApi.getApi()?.setYTDataListener((data) { TXLog.printlog("setYTDataListener $data"); });
移除所有回调
在页面销毁的时候需要移除掉所有的回调:
TencentEffectApi.getApi()?.setOnCreateXmagicApiErrorListener(null); TencentEffectApi.getApi()?.setAIDataListener(null); TencentEffectApi.getApi()?.setYTDataListener(null); TencentEffectApi.getApi()?.setTipsListener(null);
说明 接口详细可参考接口文档,其他可参考 Demo 工程。
步骤9:添加和删除美颜面板上的美颜数据
在 BeautyDataManager、BeautyPropertyProducer、BeautyPropertyProducerAndroid 和 BeautyPropertyProducerIOS 这4个类中,您可以自主操作美颜面板数据的配置。
添加美颜资源
1. 把您的资源文件按照步骤一中的方法添加到对应的资源文件夹里面。例如:需要添加2D动效的资源,您应该把资源放在工程的 android/xmagic/src.mian/assets/MotionRes/2dMotionRes
目录下。
2. 并且把资源添加到工程的 ios/Runner/xmagic/2dMotionRes.bundle
目录下:
删除美颜资源
对于某些 License 没有授权美颜和美体的部分功能,美颜面板上不需要展示这部分功能,需要在美颜面板数据的配置中删除这部分功能的配置。例如,删除口红特效。
分别在 BeautyPropertyProducerAndroid 类和 BeautyPropertyProducerIOS 类中的 getBeautyData 方法中删除以下代码:
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?