Android

手順1:Demoプロジェクトの解凍

1. Tencent Effect TEを統合したTRTC Demoプロジェクトをダウンロードします。このDemoは、Tencent Effect SDK S1-04パッケージに基づいて作成されています。
2. リソースを置き換えます。この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ディレクトリにコピーします。
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() {
@Override
public void onGLContextCreated() {
}
@Override
public int onProcessVideoFrame(TRTCCloudDef.TRTCVideoFrame srcFrame, TRTCCloudDef.TRTCVideoFrame dstFrame) {
}
@Override
public 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美顔パネルを追加
<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" />
7. パネルの初期化:
private void initXMagic() {
if (mXMagic == null) {
mXMagic = new XMagicImpl(this, mBeautyPanelView);
}else{
mXMagic.onResume();
}
}
​具体的な操作についてはDemoプロジェクトのThirdBeautyActivity.initXMagic();メソッドをご参照ください。