製品概要
製品機能
基本概念
製品のメリット
ユースケース
.aarファイルを削除し、SDKのlibsディレクトリにある.aar`ファイルをxmagicモジュールのlibsディレクトリにコピーします。assets/ディレクトリにあるすべてのリソースをxmagicモジュールの../src/main/assetsディレクトリにコピーします。SDKパッケージのMotionResフォルダにリソースがある場合は、このフォルダを../src/main/assetsディレクトリにコピーします。../src/main/jniLibsディレクトリにコピーします。implementation 'com.tencent.liteav:LiteAVSDK_Enterprise:latest.release'implementation 'com.tencent.liteav:LiteAVSDK_Professional:latest.release'XMagicImpl.init(this);XMagicImpl.checkAuth(null);
TCVideoRecordActivity.java型で、以下の変数コードを追加します。private XMagicImpl mXMagic;private int isPause = 0;//0:一時停止ではない、1:一時停止、2:一時停止中、3:廃棄が必要
TCVideoRecordActivity.java型のonCreateメソッドの後に以下のコードを追加します。TXUGCRecord instance = TXUGCRecord.getInstance(this);instance.setVideoProcessListener(new TXUGCRecord.VideoCustomProcessListener() {@Overridepublic int onTextureCustomProcess(int textureId, int width, int height) {if (isPause == 0 && mXMagic !=null) {return mXMagic.process(textureId, width, height);}return 0;}@Overridepublic void onDetectFacePoints(float[] floats) {}@Overridepublic void onTextureDestroyed() {if (Looper.getMainLooper() != Looper.myLooper()) { //メインスレッドではないif (isPause == 1) {isPause = 2;if (mXMagic != null) {mXMagic.onDestroy();}initXMagic();isPause = 0;} else if (isPause == 3) {if (mXMagic != null) {mXMagic.onDestroy();}}}}});XMagicImpl.checkAuth((errorCode, msg) -> {if (errorCode == TELicenseCheck.ERROR_OK) {loadXmagicRes();}else{TXCLog.e("TAG", "認証に失敗しました。認証urlおよびkeyを確認してください" + errorCode + " " + msg);}});
isPause = 1;if (mXMagic != null) {mXMagic.onPause();}
isPause = 3;XmagicPanelDataManager.getInstance().clearData();
if (mXMagic != null) {mXMagic.onActivityResult(requestCode, resultCode, data);}
private void loadXmagicRes() {if (XMagicImpl.isLoadedRes) {XmagicResParser.parseRes(getApplicationContext());initXMagic();return;}new Thread(() -> {XmagicResParser.setResPath(new File(getFilesDir(), "xmagic").getAbsolutePath());XmagicResParser.copyRes(getApplicationContext());XmagicResParser.parseRes(getApplicationContext());XMagicImpl.isLoadedRes = true;new Handler(Looper.getMainLooper()).post(() -> {initXMagic();});}).start();}/*** 美顔SDKの初期化*/private void initXMagic() {if (mXMagic == null) {mXMagic = new XMagicImpl(this, mUGCKitVideoRecord.getBeautyPanel());}else{mXMagic.onResume();}}
フィードバック