Android
SDK 集成
1. 集成腾讯特效
集成SDK
集成素材
2. 集成TEBeautyKit
添加面板JSON文件(如果不使用默认面板可以不添加)
3. 集成
te_adapter_live
在 dependencies 中添加
te_adapter_live
库的依赖dependencies{...implementation 'com.tencent.mediacloud:te_adapter_live:版本号'}
下载 aar 文件(下载的是一个 zip 文件,解压即可得到 aar 文件)。
添加下载的 te_adapter_live_xxxx
.aar
文件到 app 工程 libs
目录下。打开 app 模块的
build.gradle
添加依赖引用:dependencies{...implementation fileTree(dir: 'libs', include: ['*.jar','*.aar']) //添加 *.aar}
注意:
运行代码需要在
com.tencent.thirdbeauty.xmagic.LicenseConstant.java
文件中添加您申请的License
信息,并将App module
下的build.gradle
中的applicationId
修改为您申请License
时填写的包名。由于依赖
MLVB
能力,所以需要在Debug module
下找到 com.tencent.mlvb.debug.GenerateTestUserSig.java
文件,并添加对应的LICENSEURL,LICENSEURLKEY,SDKAPPID,SECRETKEY。
美颜集成的主要代码参考:
com.tencent.mlvb.thirdbeauty.ThirdBeautyActivity.java
文件。SDK 使用
第一步:设置面板 JSON 文件
TEPanelViewResModel resModel = new TEPanelViewResModel();String combo = "S1_07"; //根据您的套餐进行设置,如果您的套餐没有包含某项功能,客户设置为nullresModel.beauty = "beauty_panel/"+combo+"/beauty.json";resModel.lut = "beauty_panel/"+combo+"/lut.json";resModel.beautyBody = "beauty_panel/"+combo+"/beauty_body.json";resModel.motion = "beauty_panel/"+combo+"/motions.json";resModel.lightMakeup = "beauty_panel/"+combo+"/light_makeup.json";resModel.segmentation = "beauty_panel/"+combo+"/segmentation.json";TEUIConfig.getInstance().setTEPanelViewRes(resModel);
注意:如果您不使用提供的美颜面板,请忽略这步操作。
第二步:鉴权和复制资源
TEBeautyKit.setupSDK(this.getApplicationContext(),LicenseConstant.mXMagicLicenceUrl,LicenseConstant.mXMagicKey, (i, s) -> { if (i == LicenseConstant.AUTH_STATE_SUCCEED) {runOnUiThread(() -> { Intent intent = new Intent(MainActivity.this, ThirdBeautyActivity.class); startActivity(intent);}} else {Log.e(TAG, "te license check is failed,please checke ");}});
注意:
资源复制是根据SDK的版本号进行的,所以同一个版本号的SDK只会成功复制一次资源。
第三步:初始化 adapter 和添加面板
this.beautyLiveAdapter = new TEBeautyLiveAdapter();//设置手机朝向 this.beautyLiveAdapter.notifyScreenOrientationChanged(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//设置相机是前置摄像头还是后置摄像头,以及是否编码镜像 this.beautyLiveAdapter.notifyCameraChanged(isFront, this.isEncoderMirror);private void initBeautyPanelView() { RelativeLayout panelLayout = findViewById(R.id.live_pusher_bp_beauty_panel); this.tePanelView = new TEPanelView(this); if (lastParamList != null) { //用于恢复美颜上次效果 this.tePanelView.setLastParamList(lastParamList); }this.tePanelView.showView(this); panelLayout.addView(this.tePanelView); }
注意:如果您不想使用提供的面板,可以不创建
TEPanelView
,自己组织美颜属性,调用TEBeautyKit
的setEffect
设置美颜属性。第四步:绑定美颜
this.beautyLiveAdapter.bind(this, mLivePusher, new ITEBeautyAdapter.CallBack() {@Overridepublic void onCreatedTEBeautyKit(TEBeautyKit beautyKit) {mBeautyKit = beautyKit;tePanelView.setupWithTEBeautyKit(mBeautyKit);setTipListener(mBeautyKit);setLastParam(mBeautyKit);Log.e("beautyLiveAdapter", "onCreatedTEBeautyKit");}@Overridepublic void onDestroyTEBeautyKit() {mBeautyKit = null;Log.e("beautyLiveAdapter", "onDestroyTEBeautyKit");}});
第五步:参数变化通知 adapter
//当相机或画面镜像变化时需要调用notifyCameraChanged告诉adapter 最新的状态 this.beautyLiveAdapter.notifyCameraChanged(isFront, this.isEncoderMirror);//当屏幕方向变化的时候 需要调用 notifyScreenOrientationChange方法this.beautyLiveAdapter.notifyScreenOrientationChanged(orientation);
第六步:销毁美颜
//当不再需要美颜时可以调用unbind方法解除绑定关系this.beautyLiveAdapter.unbind();
第七步:恢复声音
/** * 用于恢复贴纸中的声音 * 恢复陀螺仪传感器,一般在Activity的onResume方法中调用 */ this.mBeautyKit.onResume()
第八步:暂停声音
/** * 用于暂停贴纸中的声音 * 暂停陀螺仪传感器,一般在Activity的onPause方法中调用 */ this.mBeautyKit.onPause()