ファイルタイプ | 説明 |
xmagic-xxx.aar | SDK。入力必須 |
../assets/ | アルゴリズムモデル、素材リソースパック。入力必須 |
../jniLibs | soライブラリ。入力必須 |
.aar
ファイルをappプロジェクトのlibs
ディレクトリ下に追加します。../src/main/assets
ディレクトリにコピーします。SDKパッケージのMotionResフォルダにリソースがある場合は、このフォルダを../src/main/assets
ディレクトリにコピーします。../src/main/jniLibs
ディレクトリ下にコピーします。build.gradle
を開き、依存参照を追加します。android{...defaultConfig {applicationIdを「権限承認licにバインドしたパッケージ名に変更」します....}packagingOptions {pickFirst '**/libc++_shared.so'}}dependencies{...compile fileTree(dir: 'libs', include: ['*.jar','*.aar'])//追加*.aar}
dependencies{implementation 'com.google.code.gson:gson:2.8.2'}
dependencies{//例:S1-04パッケージの場合implementation 'com.tencent.mediacloud:TencentEffect_S1-04:latest.release'}
defaultConfig {ndk {abiFilters "armeabi-v7a", "arm64-v8a"}}
../assets/MotionRes
../assets/lut
バージョン | Mavenアドレス |
A1 - 01 | implementation 'com.tencent.mediacloud:TencentEffect_A1-01:latest.release' |
A1 - 02 | implementation 'com.tencent.mediacloud:TencentEffect_A1-02:latest.release' |
A1 - 03 | implementation 'com.tencent.mediacloud:TencentEffect_A1-03:latest.release' |
A1 - 04 | implementation 'com.tencent.mediacloud:TencentEffect_A1-04:latest.release' |
A1 - 05 | implementation 'com.tencent.mediacloud:TencentEffect_A1-05:latest.release' |
A1 - 06 | implementation 'com.tencent.mediacloud:TencentEffect_A1-06:latest.release' |
S1 - 00 | implementation 'com.tencent.mediacloud:TencentEffect_S1-00:latest.release' |
S1 - 01 | implementation 'com.tencent.mediacloud:TencentEffect_S1-01:latest.release' |
S1 - 02 | implementation 'com.tencent.mediacloud:TencentEffect_S1-02:latest.release' |
S1 - 03 | implementation 'com.tencent.mediacloud:TencentEffect_S1-03:latest.release' |
S1 - 04 | implementation 'com.tencent.mediacloud:TencentEffect_S1-04:latest.release' |
v_cube.license
としなければなりません。//ダウンロードのトリガーまたはlicenseの更新のみが目的であり、認証結果には関心がない場合は、4つ目のパラメータにはnullを渡します。TELicenseCheck.getInstance().setXMagicLicense(context, URL, KEY, null);
LaunchActivity.java
など)認証を行います。// soライブラリがネットワークからダウンロードしたものの場合は、TELicenseCheck.getInstance().setTELicenseを呼び出す前にsoのパスを設定しておかなければ、認証に失敗する場合があります。// XmagicApi.setLibPathAndLoad(validLibsDirectory);// soがapkパッケージ内にある場合は、上記のメソッドを呼び出す必要はありません。TELicenseCheck.getInstance().setTELicense(context, URL, KEY, new TELicenseCheckListener() {@Overridepublic void onLicenseCheckFinish(int errorCode, String msg) {//注意:このコールバックは呼び出しスレッド内にあるとは限りませんif (errorCode == TELicenseCheck.ERROR_OK) {//認証に成功しました}else{//認証に失敗しました}}});
エラーコード | 説明 |
0 | 成功です。Success |
-1 | 入力パラメータが無効です(例:URLまたはKEYが空など) |
-3 | ダウンロードの段階で失敗しました。ネットワークの設定を確認してください |
-4 | ローカルから読み取ったTE権限承認情報が空です。IOの失敗による可能性があります |
-5 | 読み取ったVCUBE TEMP Licenseファイルの内容が空です。IOの失敗による可能性があります |
-6 | v_cube.licenseファイルのJSONフィールドが正しくありません。Tencent Cloudチームに連絡して処理を依頼してください |
-7 | 署名の検証に失敗しました。Tencent Cloudチームに連絡して処理を依頼してください |
-8 | 復号に失敗しました。Tencent Cloudチームに連絡して処理を依頼してください |
-9 | TELicenseフィールド内のJSONフィールドが正しくありません。Tencent Cloudチームに連絡して処理を依頼してください |
-10 | ネットワークから解析したTE権限承認情報が空です。Tencent Cloudチームに連絡して処理を依頼してください |
-11 | TE権限承認情報をローカルファイルに書き込む際に失敗しました。IOの失敗による可能性があります |
-12 | ダウンロードに失敗しました。ローカルassetの解析も失敗しました |
-13 | 認証に失敗しました。soがパッケージ内にあるか、またはsoパスが正しく設定されているかを確認してください |
3004/3005 | 権限承認が無効です。Tencent Cloudチームに連絡して処理を依頼してください |
3015 | Bundle Id / Package Name が一致しません。Appで使用しているBundle Id / Package Nameが申請時のものと同じか、正しい権限承認ファイルを使用しているかを確認してください |
3018 | 権限承認ファイルが期限切れです。Tencent Cloudに更新を申請する必要があります |
その他 | Tencent Cloudチームに連絡して処理を依頼してください |
LaunchActivity.java
です。XmagicResParser.setResPath(new File(getFilesDir(), "xmagic").getAbsolutePath());//loading//リソースファイルのプライベートディレクトリへのコピーは1回のみ行いますXmagicResParser.copyRes(getApplicationContext());
LaunchActivity.java
です。XmagicResParser.setResPath(ダウンロードしたリソースファイルのローカルパス);
XmagicResParser.java,XmagicUIProperty.java,XmagicPanelDataManager.java
コード。<android.opengl.GLSurfaceViewandroid:id="@+id/camera_gl_surface_view"android:layout_width="match_parent"android:layout_height="match_parent" />
PreviewMgr
クラスを利用してカメラ機能をクイック実装します。実装の詳細についてはDemoプロジェクトのMainActivity.java
をご参照ください。//カメラ初期化mPreviewMgr = new PreviewMgr();//レイアウトしたGlSurfaceViewサンプルをカメラツールクラスに渡しますmPreviewMgr.onCreate(mGlSurfaceView,false);//プレビューテクスチャデータのコールバック関数を登録しますmPreviewMgr.setCustomTextureProcessor((textureId, textureWidth, textureHeight) -> {if (mXmagicApi == null) {return textureId;}//美顔sdkを呼び出してレンダリングしますint outTexture = mXmagicApi.process(textureId, textureWidth, textureHeight);return outTexture;});//Activityの中のonResumeメソッドでカメラを有効にしますmPreviewMgr.onResume(this, 1280, 720);
onResume()
メソッドに保存することをお勧めします。mXmagicApi = new XmagicApi(this, XmagicResParser.getResPath(),new XmagicApi.OnXmagicPropertyErrorListener());
パラメータ | 意味 |
Context context | コンテキスト |
String resDir | |
OnXmagicPropertyErrorListener errorListener | コールバック関数実装クラス |
mXmagicApi.setTipsListener(new XmagicTipsListener() {final XmagicToast mToast = new XmagicToast();@Overridepublic void tipsNeedShow(String tips, String tipsIcon, int type, int duration) {mToast.show(MainActivity.this, tips, duration);}@Overridepublic void tipsNeedHide(String tips, String tipsIcon, int type) {mToast.dismiss();}});
int outTexture = mXmagicApi.process(textureId, textureWidth, textureHeight);
// 使用可能な入力パラメータのプロパティはXmagicResParser.parseRes()から取得できますmXmagicApi.updateProperty(XmagicProperty<?> p);
onPause()
ライフサイクルにバインドすることをお勧めします。//ActivityがonPauseの場合に呼び出します。OpenGLスレッドで呼び出す必要がありますmXmagicApi.onPause();
onDestroy()
ライフサイクルにバインドすることをお勧めします。//このメソッドはGLスレッドで呼び出す必要があることにご注意くださいmXmagicApi.onDestroy()
この記事はお役に立ちましたか?