Android
1단계: Demo 프로젝트 압축 해제
1. Tencent Effect(TE) SDK와 통합된 TRTC Demo를 다운로드합니다. 이 Demo는 Tencent Effect SDK S1-04 에디션을 기반으로 제작되었습니다.
2. Demo의 SDK 파일을 실제로 사용하는 SDK용 파일로 교체합니다. 구체적 작업은 다음 단계를 따르십시오.
xmagic 모듈의 libs 디렉터리에 있는
.aar
파일을 SDK의 libs에 있는 .aar
파일로 교체하십시오.xmagic 모듈의
../src/main/assets
에 있는 모든 파일을 SDK의 assets/
에 있는 파일로 교체합니다. SDK 패키지의 MotionRes 폴더에 파일이 있는 경우 ../src/main/assets
디렉터리에도 복사합니다.xmagic 모듈의
../src/main/jniLibs
에 있는 모든 .so 파일을 SDK 패키지의 jniLibs에 있는 .so 파일로 교체합니다(arm64-v8a 및 armeabi-v7a에 대한 .so 파일을 얻으려면 jinLibs 폴더에 있는 ZIP 파일의 압축을 풀어야 합니다).3. Demo 프로젝트의 xmagic 모듈을 실제 항목 프로젝트로 가져옵니다.
2단계: app 모듈의 build.gradle 열기
1. applicationId를 신청된 테스트 인증과 일치하는 패키지 이름으로 수정합니다.
2. gson 종속성 설정을 추가합니다.
configurations{all*.exclude group:'com.google.code.gson'}
3단계: SDK 인터페이스 통합
Demo 프로젝트의 ThirdBeautyActivity 클래스를 참고하십시오.
1. 인증:
//인증 시 주의사항 및 오류 코드 내용은 https://intl.cloud.tencent.com/document/product/1143/45385#step-1.-authenticate를 참고하십시오XMagicImpl.checkAuth((errorCode, msg) -> {if (errorCode == TELicenseCheck.ERROR_OK) {showLoadResourceView();} else {TXCLog.e(TAG, "인증 실패, 인증 url 및 key를 확인하십시오" + errorCode + " " + msg);}});
2. 소재 초기화:
private void showLoadResourceView() {if (XmagicLoadAssetsView.isCopyedRes) {XmagicResParser.parseRes(getApplicationContext());initXMagic();} else {loadAssetsView = new XmagicLoadAssetsView(this);loadAssetsView.setOnAssetsLoadFinishListener(() -> {XmagicResParser.parseRes(getApplicationContext());initXMagic();});}}
3. 푸시 설정 활성화:
mTRTCCloud.setLocalVideoProcessListener(TRTCCloudDef.TRTC_VIDEO_PIXEL_FORMAT_Texture_2D, TRTCCloudDef.TRTC_VIDEO_BUFFER_TYPE_TEXTURE, new TRTCCloudListener.TRTCVideoFrameListener() {@Overridepublic void onGLContextCreated() {}@Overridepublic int onProcessVideoFrame(TRTCCloudDef.TRTCVideoFrame srcFrame, TRTCCloudDef.TRTCVideoFrame dstFrame) {}@Overridepublic void onGLContextDestory() {}});
4. textureId를 SDK에 불러오기 및 렌더링 처리:
TRTCVideoFrameListener 인터페이스의
onProcessVideoFrame(TRTCCloudDef.TRTCVideoFrame srcFrame, TRTCCloudDef.TRTCVideoFrame dstFrame)
메소드에 다음 코드를 추가합니다. dstFrame.texture.textureId = mXMagic.process(srcFrame.texture.textureId, srcFrame.width, srcFrame.height);
5. SDK 일시 중지/비활성화:
onPause()는 뷰티 필터 일시 중지에 사용되며, Activity/Fragment 라이프사이클 메소드에서 실행할 수 있습니다. onDestroy 메소드는 GL 스레드에서 호출해야 합니다. (onTextureDestroyed 메소드에서 XMagicImpl 객체의
onDestroy()
호출 가능), 자세한 사용법은 Demo를 참고하십시오.mXMagic.onPause(); //일시 정지, Activity의 onPause 메소드와 연결mXMagic.onDestroy(); //폐기. GL 스레드에서 호출
6. 레이아웃에 SDK 뷰티 필터 패널 추가:
<RelativeLayoutandroid:layout_above="@+id/ll_edit_info"android:id="@+id/livepusher_bp_beauty_pannel"android:layout_width="match_parent"android:layout_height="wrap_content" />
7. 패널 초기화:
private void initXMagic() {if (mXMagic == null) {mXMagic = new XMagicImpl(this, mBeautyPanelView);}else{mXMagic.onResume();}}
자세한 내용은 Demo 프로젝트의
ThirdBeautyActivity.initXMagic();
메소드를 참고하십시오.