Android
手順1:Demoプロジェクトの解凍
- Tencent Effect TEを統合したTRTC Demoプロジェクトをダウンロードします。このDemoは、Tencent Effect SDK S1-04パッケージに基づいて作成されています。
- リソースを置き換えます。このDemoプロジェクトで使用されるSDKパッケージは実際のパッケージと同じではない可能性があるため、このDemoの関連SDKファイルを実際に使用するパッケージのSDKファイルに置き換えてください。具体的な操作は以下のとおりです:
- xmagicモジュールのlibsディレクトリにある
.aar
ファイルを削除し、SDKのlibsディレクトリにある.aar`ファイルをxmagicモジュールのlibsディレクトリにコピーします。 - xmagicモジュールのassetsディレクトリにあるすべてのファイルを削除し、SDKの
assets/
ディレクトリにあるすべてのリソースをxmagicモジュールの../src/main/assets
ディレクトリにコピーします。SDKパッケージのMotionResフォルダにリソースがある場合は、このフォルダを../src/main/assets
ディレクトリにコピーします。 - xmagicモジュールのjniLibsディレクトリにあるすべての.soファイルを削除し、SDKパッケージのjniLibsで対応する.soファイルを見つけて(SDKのjinLibsフォルダにあるarm64-v8aおよびarmeabi-v7aの.soファイルが圧縮パッケージに存在しているため、先に解凍する必要がある)、xmagicモジュールの
../src/main/jniLibs
ディレクトリにコピーします。
- xmagicモジュールのlibsディレクトリにある
- Demoプロジェクトのxmagicモジュールを実際のプロジェクトにインポートします。
手順2:appモジュールのbuild.gradleを開く
- applicationIdを、テスト用に申請した権限と同じパッケージ名に変更します。
- gson依存設定を追加します。
configurations{ all*.exclude group:'com.google.code.gson' }
手順3:SDKインターフェースの統合
DemoプロジェクトのThirdBeautyActivityクラスを参照できます。
権限承認:
//認証に関する注意事項とエラーコードの詳細については、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); } });
素材の初期化:
private void showLoadResourceView() { if (XmagicLoadAssetsView.isCopyedRes) { XmagicResParser.parseRes(getApplicationContext()); initXMagic(); }else{ loadAssetsView = new XmagicLoadAssetsView(this); loadAssetsView.setOnAssetsLoadFinishListener(() -> { XmagicResParser.parseRes(getApplicationContext()); initXMagic(); }); } }
プッシュ設定の有効化:
mTRTCCloud.setLocalVideoProcessListener(TRTCCloudDef.TRTC_VIDEO_PIXEL_FORMAT_Texture_2D, TRTCCloudDef.TRTC_VIDEO_BUFFER_TYPE_TEXTURE, new TRTCCloudListener.TRTCVideoFrameListener() { @Override public void onGLContextCreated() { } @Override public int onProcessVideoFrame(TRTCCloudDef.TRTCVideoFrame srcFrame, TRTCCloudDef.TRTCVideoFrame dstFrame) { } @Override public void onGLContextDestory() { } });
textureIdをSDKに渡し、レンダリング処理を実施:
TRTCVideoFrameListenerインターフェースのonProcessVideoFrame(TRTCCloudDef.TRTCVideoFrame srcFrame, TRTCCloudDef.TRTCVideoFrame dstFrame)
メソッド内に次のコードを追加します:dstFrame.texture.textureId = mXMagic.process(srcFrame.texture.textureId, srcFrame.width, srcFrame.height);
SDKの一時停止/停止:
onPause()は美顔効果の一時停止に使用し、Activity/Fragmentライフサイクルメソッドにおいて実行できます。onDestroyメソッドはGLスレッドで呼び出してください(onTextureDestroyedメソッドでXMagicImplオブジェクトのonDestroy()
を呼び出すことができます)。その他の使用についてはDemoをご参照ください。mXMagic.onPause(); //一時停止。ActivityのonPauseメソッドにバインドします mXMagic.onDestroy(); //破棄。GLスレッドで呼び出してください
レイアウトにSDK美顔パネルを追加:
<RelativeLayout android:layout_above="@+id/ll_edit_info" android:id="@+id/livepusher_bp_beauty_pannel" android:layout_width="match_parent" android:layout_height="wrap_content" />
パネルの初期化:
private void initXMagic() { if (mXMagic == null) { mXMagic = new XMagicImpl(this, mBeautyPanelView); }else{ mXMagic.onResume(); } }
具体的な操作についてはDemoプロジェクトのThirdBeautyActivity.initXMagic();
メソッドをご参照ください。