Flutter

1단계: 효과 리소스 다운로드 및 통합

구매한 패키지에 해당하는 SDK를 다운로드하고 자신의 프로젝트에 리소스 파일을 추가합니다.
Android
iOS
1. app에서 build.gradle을 열고 패키지의 maven 주소를 추가합니다. 예를 들어 S1-04를 구매한 경우 다음을 추가합니다.
dependencies{
implementation 'com.tencent.mediacloud:TencentEffect_S1-04:latest.release'
}
문서에서 다양한 패키지의 maven 주소를 찾을 수 있습니다.
2. app에서 src/main/assets 폴더를 찾습니다(이 폴더가 없으면 새로 생성). MotionRes 폴더가 있는지 확인합니다. ../src/main/assets에 복사합니다.
3. app에서 AndroidManifest.xml을 열고 application에 다음 태그를 추가합니다.
<uses-native-library
android:name="libOpenCL.so"
android:required="true" />
//여기서 true는 이 라이브러리가 없으면 애플리케이션이 제대로 작동하지 않음을 의미합니다. 시스템은 이 라이브러리가 없는 장치에 애플리케이션 설치를 허용하지 않습니다.
//false는 애플리케이션이 이 라이브러리(있는 경우)를 사용할 수 있지만 특히 라이브러리 없이(필요한 경우) 실행됨을 의미합니다. 시스템은 이 라이브러리가 존재하지 않는 경우에도 애플리케이션을 설치할 수 있도록 허용합니다. "false"를 사용하는 경우 라이브러리의 부재를 적절하게 처리할 책임은 사용자에게 있습니다.
//Android 공식 웹사이트 소개: %!s(<nil>)
다음과 같이 표시됩니다.

4. 난독화 구성
release 패키지를 인쇄할 때 컴파일 최적화(minifyEnabled를 true로 설정)를 활성화한 경우 java 레이어에서 호출되지 않은 일부 코드가 잘려서 native 레이어에서 호출되어 no xxx method 예외가 발생할 수 있습니다.
이러한 컴파일 최적화를 활성화한 경우 xmagic 코드가 잘리지 않도록 다음 keep 규칙을 추가합니다.
-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.** { *;}
1. 프로젝트에 효과 리소스 추가(리소스는 스크린샷과 다를 수 있음):

2. demo/lib/producer에 있는 BeautyDataManager, BeautyPropertyProducer, BeautyPropertyProducerAndroid 및 BeautyPropertyProducerIOS의 네 가지 클래스를 Flutter 프로젝트에 복사합니다. 효과 패널에서 효과 리소스 및 표시 효과 옵션을 구성하는 데 사용됩니다.

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를 업데이트할 수 있습니다.
Android
iOS
프로젝트 디렉터리에서 flutter pub upgrade를 실행하거나 subspec.yaml 페이지의 오른쪽 상단에 있는 Pub upgrade를 클릭합니다.
프로젝트 디렉터리에서 flutter pub upgrade를 실행한 다음 ios 디렉터리에서 pod update를 실행합니다.

3단계: MLVB와 Tencent Effect 결합

Android
iOS
다음 코드를 application 클래스의 oncreate(또는 FlutterActivity의 onCreate)에 추가합니다.
TXLivePluginManager.register(new XmagicProcesserFactory());
AppDelegate 클래스의 didFinishLaunchingWithOptions에 다음 코드를 추가합니다.
XmagicProcesserFactory *instance = [[XmagicProcesserFactory alloc] init];
[TXLivePluginManager registerWithCustomBeautyProcesserFactory:instance];
다음과 같이 표시됩니다.


4단계: 리소스 초기화 API 호출

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단계: license 설정

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);
설명
API에 대한 자세한 내용은 API 문서를 참고하십시오. 기타는 Demo 프로젝트를 참고하십시오.

9단계: 뷰티 필터 패널에 데이터 추가 및 제거

BeautyDataManager, BeautyPropertyProducer, BeautyPropertyProducerAndroid 및 BeautyPropertyProducerIOS 클래스에서 뷰티 필터 패널 데이터를 사용자 지정할 수 있습니다.

뷰티 필터 리소스 추가

1. 1단계에서 설명한 대로 해당 폴더에 리소스 파일을 추가합니다. 예를 들어 2D 애니메이션 효과를 추가하려면 프로젝트의 android/xmagic/src.mian/assets/MotionRes/2dMotionRes에 리소스를 넣어야 합니다.

2. 또한 리소스를 ios/Runner/xmagic/2dMotionRes.bundle에 추가합니다.


뷰티 필터 리소스 삭제

귀하의 License는 패널에서 삭제할 수 있는 일부 뷰티필터 또는 신체 보정 효과를 지원하지 않을 수 있습니다. 예를 들어 립스틱 효과를 삭제하려면 다음을 수행합니다. BeautyPropertyProducerAndroid 및 BeautyPropertyProducerIOS의 getBeautyData에서 아래 코드를 삭제합니다.