Flutter
1단계: 효과 리소스 다운로드 및 통합
1. 구매한 패키지의 해당 SDK를 다운로드합니다.
2. 자신의 프로젝트에 리소스 파일을 추가합니다.
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-libraryandroid: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 참조
GitHub 참조: 프로젝트의 pubspec.yaml 파일에 다음 참조를 추가합니다.
tencent_effect_flutter:git:url: https://github.com/TencentCloud/tencenteffect-sdk-flutter
로컬 참조: tencent_effect_flutter SDK의 최신 버전을 다운로드합니다.
android
ios
및 lib
폴더와 pubspec.yaml
및 tencent_effect_flutter.iml
파일을 프로젝트 디렉터리에 복사하고 프로젝트의 pubspec.yaml 파일에 다음 코드를 추가합니다. (demo 참고)tencent_effect_flutter:path: ../
tencent_effect_flutter는 브릿지 역할만 합니다. 효과를 구현하는 것은 XMagic입니다. 기본적으로 최신 버전의 XMagic이 사용됩니다.
최신 버전의 뷰티 필터 SDK를 사용하려면 다음 방법을 사용하여 SDK를 업데이트할 수 있습니다.
프로젝트 디렉터리에서
flutter pub upgrade
를 실행하거나 subspec.yaml
페이지의 오른쪽 상단에 있는 Pub upgrade를 클릭합니다.프로젝트 디렉터리에서 flutter pub upgrade를 실행한 다음 iOS 디렉터리에서
pod update
를 실행합니다.3단계: TRTC와 Tencent Effect 결합
다음 코드를 application 클래스의 oncreate(또는 FlutterActivity의 onCreate)에 추가합니다.
TRTCCloudPlugin.register(new XmagicProcesserFactory());
AppDelegate 클래스의 didFinishLaunchingWithOptions에 다음 코드를 추가합니다.
XmagicProcesserFactory *instance = [[XmagicProcesserFactory alloc] init];[TencentTRTCCloud 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 trtcCloud.enableCustomVideoProcess(open);
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단계에서 설명한 대로 해당 폴더에 리소스 파일을 추가합니다. 예를 들어 2D 애니메이션 효과를 추가하려면 다음을 수행합니다.
1. 프로젝트의
android/xmagic/src.mian/assets/MotionRes/2dMotionRes
에 리소스를 넣습니다.
2. 또한 리소스를
ios/Runner/xmagic/2dMotionRes.bundle
에 추가합니다.
뷰티 필터 리소스 삭제
귀하의 License는 패널에서 일부 뷰티 필터 또는 신체 보정 효과를 지원하지 않을 수 있습니다. 지원되지 않는 기능은 삭제할 수 있습니다.
예를 들어 립스틱 효과를 삭제하려면 BeautyPropertyProducerAndroid와 BeautyPropertyProducerIOS의 getBeautyData에서 아래 코드를 삭제합니다.