1、声网里美颜(相心)so动态加载 开发基本完成

2、Gradle速度很慢,配置缓存等设置
This commit is contained in:
laopi 2024-09-04 17:32:19 +08:00
parent b4a4302cc7
commit cbd99e0664
11 changed files with 83 additions and 85 deletions

View File

@ -21,7 +21,7 @@ app 主程序
common 公共模块 common 公共模块
FaceUnity 美颜模块 FaceUnity 美颜模块
IAP6Helper 三星模块 IAP6Helper 三星模块
lib_faceunity 声网美颜模块 lib_faceunity 声网模块
lib_google 谷歌模块 lib_google 谷歌模块
lib_huawei 华为模块 lib_huawei 华为模块
live 直播间模块 live 直播间模块

View File

@ -67,12 +67,17 @@ android {
exclude 'lib/armeabi-v7a/libmmlic.so' exclude 'lib/armeabi-v7a/libmmlic.so'
exclude 'lib/armeabi-v7a/libMNN_CL.so' exclude 'lib/armeabi-v7a/libMNN_CL.so'
exclude 'lib/armeabi-v7a/libMNN_Express.so' exclude 'lib/armeabi-v7a/libMNN_Express.so'
//
if (rootProject.ext.manifestPlaceholders.isPluginModel) { // SO
if (rootProject.ext.manifestPlaceholders.isGooglePlay == 0) {
exclude 'lib/armeabi-v7a/libCNamaSDK.so' exclude 'lib/armeabi-v7a/libCNamaSDK.so'
exclude 'lib/arm64-v8a/libCNamaSDK.so' exclude 'lib/arm64-v8a/libCNamaSDK.so'
exclude 'lib/x86_64/libCNamaSDK.so'
exclude 'lib/x86/libCNamaSDK.so'
exclude 'lib/armeabi-v7a/libfuai.so' exclude 'lib/armeabi-v7a/libfuai.so'
exclude 'lib/arm64-v8a/libfuai.so' exclude 'lib/arm64-v8a/libfuai.so'
exclude 'lib/x86_64/libfuai.so'
exclude 'lib/x86/libfuai.so'
} }
} }
compileOptions { compileOptions {

View File

@ -1,22 +1,16 @@
package com.shayu.phonelive.activity; package com.shayu.phonelive.activity;
import static com.yunbao.live.views.SystemMessageViewHolder.PERMISSION_REQUEST_CODE;
import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.Display; import android.view.Display;
@ -30,20 +24,15 @@ import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.app.ActivityOptionsCompat; import androidx.core.app.ActivityOptionsCompat;
import androidx.core.app.NotificationManagerCompat; import androidx.core.app.NotificationManagerCompat;
import androidx.core.content.ContextCompat;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup;
import com.shayu.phonelive.AppContext; import com.shayu.phonelive.AppContext;
import com.tencent.rtmp.ITXLivePlayListener; import com.tencent.rtmp.ITXLivePlayListener;
import com.tencent.rtmp.TXLiveBase; import com.tencent.rtmp.TXLiveBase;
@ -65,14 +54,12 @@ import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager; import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.DownloadUtil; import com.yunbao.common.utils.DownloadUtil;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.L; import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LogUtil; import com.yunbao.common.utils.LogUtil;
import com.yunbao.common.utils.MD5Util; import com.yunbao.common.utils.MD5Util;
import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.views.LauncherAdViewHolder; import com.yunbao.live.views.LauncherAdViewHolder;
import com.yunbao.main.activity.EntryActivity; import com.yunbao.main.activity.EntryActivity;
import com.yunbao.main.activity.MainActivity; import com.yunbao.main.activity.MainActivity;
@ -178,13 +165,41 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
mHandler.sendEmptyMessageDelayed(WHAT_GET_CONFIG, 1000); mHandler.sendEmptyMessageDelayed(WHAT_GET_CONFIG, 1000);
}else { }else {
//链接包 下载so库 //链接包 下载so库
downLoadSo(); checkFaceUnitySOFile();
checkAgoraSOFile();
} }
} }
private void downLoadSo() {
private void checkFaceUnitySOFile() {
File outputDir = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), Constants.DOWNLOAD_FaceUnity_SO);
String cpuAbi = "";
cpuAbi = Build.CPU_ABI;
if (!outputDir.exists()) {
outputDir.mkdirs();
}
File fileSo = new File(outputDir, Constants.FaceUnity_SO_Name);
File fileSoList = new File(outputDir, cpuAbi);
//解压后的文件数量必须要有2个
//如果文件存在解压后 文件数量一致直接进入下一步
if (fileSo.exists() && getFileCount(fileSoList.getAbsolutePath()) == 2){
return;
}
// https://downs.yaoulive.com/androidLibs/t3/faceunity2-so-arm64-v8a.zip
String soUrl = String.format("https://downs.yaoulive.com/androidLibs/t3/faceunity2-so-%s.zip", cpuAbi);
Log.i("download", soUrl);
if (!fileSo.exists()) {
downloadSo(outputDir.getAbsolutePath(), soUrl,Constants.FaceUnity_SO_Name,false);
}else if (fileSo.exists() && getFileCount(outputDir.getAbsolutePath()) < 3) {
fileSo.delete();
downloadSo(outputDir.getAbsolutePath(), soUrl,Constants.FaceUnity_SO_Name,false);
}
}
private void checkAgoraSOFile() {
//存储路径 //检查是否下载过 //存储路径 //检查是否下载过
File outputDir = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), Constants.DOWNLOAD_SO); File outputDir = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), Constants.DOWNLOAD_Agora_SO);
Log.i("downLoad", "outputDir.getAbsolutePath() = " + outputDir.getAbsolutePath()); Log.i("downLoad", "outputDir.getAbsolutePath() = " + outputDir.getAbsolutePath());
String cpuAbi = ""; String cpuAbi = "";
@ -194,7 +209,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
Log.e("downLoad", "outputDir:>>>" + outputDir.exists()); Log.e("downLoad", "outputDir:>>>" + outputDir.exists());
outputDir.mkdirs(); outputDir.mkdirs();
} }
File fileSo = new File(outputDir, "soKuZip.zip"); File fileSo = new File(outputDir, Constants.Agora_SO_Name);
Log.i("downLoad", "fileSo.getAbsolutePath() = " + fileSo.getAbsolutePath()); Log.i("downLoad", "fileSo.getAbsolutePath() = " + fileSo.getAbsolutePath());
File fileSoList = new File(outputDir, cpuAbi); File fileSoList = new File(outputDir, cpuAbi);
@ -213,18 +228,16 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
//2开始下载 //2开始下载
//检查压缩包是否已经下载过 //检查压缩包是否已经下载过
Log.i("download", "permission WRITE_EXTERNAL_STORAGE.." + ContextCompat.checkSelfPermission(LauncherActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)); String soUrl = String.format("https://downs.yaoulive.com/androidLibs/t1/agora-so-%s.zip", cpuAbi);
Log.i("download", "permission READ_EXTERNAL_STORAGE .." + ContextCompat.checkSelfPermission(LauncherActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)); // https://downs.yaoulive.com/androidLibs/t1/agora-so-arm64-v8a.zip
String soUrl = String.format("https://downs.yaoulive.com/so-%s.zip", cpuAbi);
Log.i("download", soUrl); Log.i("download", soUrl);
if (!fileSo.exists()) { if (!fileSo.exists()) {
downloadSo(outputDir.getAbsolutePath(), soUrl); downloadSo(outputDir.getAbsolutePath(), soUrl,Constants.Agora_SO_Name,true);
}else if (fileSo.exists() && getFileCount(outputDir.getAbsolutePath()) < 23) { }else if (fileSo.exists() && getFileCount(outputDir.getAbsolutePath()) < 23) {
fileSo.delete(); fileSo.delete();
downloadSo(outputDir.getAbsolutePath(), soUrl); downloadSo(outputDir.getAbsolutePath(), soUrl,Constants.Agora_SO_Name,true);
} }
} }
Dialog progressDialog; Dialog progressDialog;
@ -251,34 +264,32 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
progressDialog.setCancelable(false); progressDialog.setCancelable(false);
progressDialog.show(); progressDialog.show();
} }
public void downloadSo(String outputDir, String downloadUrl) { public void downloadSo(String outputDir, String downloadUrl,String fileName,boolean isShowDialog) {
DownloadUtil downloadUtil = new DownloadUtil(); DownloadUtil downloadUtil = new DownloadUtil();
if(isShowDialog){
showDialog(LauncherActivity.this); showDialog(LauncherActivity.this);
downloadUtil.download("so", outputDir, "soKuZip.zip", downloadUrl, new DownloadUtil.Callback() { }
downloadUtil.download("so", outputDir, fileName, downloadUrl, new DownloadUtil.Callback() {
@Override @Override
public void onSuccess(File file) { public void onSuccess(File file) {
if (isShowDialog){
progressDialog.dismiss(); progressDialog.dismiss();
//存储路径
// File outputDir = new File(getApplicationInfo().dataDir, "dataLib");
//
// if (!outputDir.exists()) {
// Log.e("downLoad", "outputDir:>>>" + outputDir.exists());
// outputDir.mkdirs();
// }
mHandler.sendEmptyMessageDelayed(WHAT_GET_CONFIG, 20); mHandler.sendEmptyMessageDelayed(WHAT_GET_CONFIG, 20);
File fileSo = new File(outputDir, "soKuZip.zip"); }
File fileSo = new File(outputDir, fileName);
try { try {
unzip(fileSo.getAbsolutePath(), outputDir); unzip(fileSo.getAbsolutePath(), outputDir);
} catch (Exception e) { } catch (Exception e) {
Log.e("ZipCheck", "Error reading ZIP file", e); Log.e("ZipCheck", "Error reading ZIP file", e);
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
@Override @Override
public void onProgress(int progress) { public void onProgress(int progress) {
if (isShowDialog){
progressBar.setProgress(progress); progressBar.setProgress(progress);
}
Log.i("downLoad", "progress:>>>" + progress); Log.i("downLoad", "progress:>>>" + progress);
} }

View File

@ -28,8 +28,6 @@ buildscript {
classpath "com.github.jadepeakpoet.ARouter:arouter-register:1.0.3" classpath "com.github.jadepeakpoet.ARouter:arouter-register:1.0.3"
classpath 'com.huawei.agconnect:agcp:1.5.2.300' classpath 'com.huawei.agconnect:agcp:1.5.2.300'
} }
} }

View File

@ -178,6 +178,7 @@ dependencies {
//im //im
api 'com.tencent.imsdk:imsdk-plus:5.4.666' api 'com.tencent.imsdk:imsdk-plus:5.4.666'
api 'com.google.code.gson:gson:2.8.8' api 'com.google.code.gson:gson:2.8.8'
api 'cn.rongcloud.sdk:rtc_lib:5.7.0' // api 'cn.rongcloud.sdk:rtc_lib:5.7.0' //
// 5.1.2 // 5.1.2
api 'cn.rongcloud.sdk:im_lib:5.7.0' api 'cn.rongcloud.sdk:im_lib:5.7.0'
@ -186,6 +187,7 @@ dependencies {
api 'cn.rongcloud.sdk:im_kit:5.7.0' // UI api 'cn.rongcloud.sdk:im_kit:5.7.0' // UI
// //
api 'cn.rongcloud.sdk:sight:5.7.0' api 'cn.rongcloud.sdk:sight:5.7.0'
api 'com.facebook.android:facebook-android-sdk:15.2.0' api 'com.facebook.android:facebook-android-sdk:15.2.0'
implementation 'com.facebook.android:facebook-android-sdk:15.2.0' implementation 'com.facebook.android:facebook-android-sdk:15.2.0'

View File

@ -316,6 +316,10 @@ public class Constants {
public static int firstInto = 0;// public static int firstInto = 0;//
// 声网so // 声网so
public static final String DOWNLOAD_SO = "agora_lib"; public static final String DOWNLOAD_Agora_SO = "agora_lib";
public static final String Agora_SO_Name = "agora_lib.zip";
// 美颜SO
public static final String DOWNLOAD_FaceUnity_SO = "faceunity_lib";
public static final String FaceUnity_SO_Name = "faceunity_lib.zip";
} }

View File

@ -32,7 +32,6 @@ ext {
isPluginModel : false, isPluginModel : false,
facebook_app_id : "2011402032399020", facebook_app_id : "2011402032399020",
facebook_client_token : "959584e054a33614996361f0044e5253", facebook_client_token : "959584e054a33614996361f0044e5253",
lineChannelId : "1656399535", lineChannelId : "1656399535"
isAppBundle: true
] ]
} }

View File

@ -13,11 +13,15 @@
#Thu Feb 04 00:05:45 CST 2021 #Thu Feb 04 00:05:45 CST 2021
android.injected.testOnly=false android.injected.testOnly=false
org.gradle.daemon=true org.gradle.daemon=true
org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=4096m -XX:+UseParallelGC -Dfile.encoding=UTF-8
#org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true org.gradle.parallel=true
org.gradle.unsafe.configuration-cache=true
org.gradle.caching=true
org.gradle.configureondemand=true org.gradle.configureondemand=true
org.gradle.workers.max=8
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
android.nonTransitiveRClass=false android.nonTransitiveRClass=false

View File

@ -2,34 +2,20 @@ package io.agora.beautyapi.faceunity.agora;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.opengl.EGL14;
import android.opengl.EGLConfig;
import android.opengl.EGLContext;
import android.opengl.EGLDisplay;
import android.opengl.EGLSurface;
import android.opengl.GLES20;
import android.os.Build; import android.os.Build;
import android.util.Log; import android.util.Log;
import android.view.Surface;
import android.view.TextureView; import android.view.TextureView;
import android.view.View; import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import com.faceunity.wrapper.faceunity;
import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext; import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.LiveBean; import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.http.API;
import com.yunbao.common.http.ResponseModel;
import com.yunbao.common.manager.MicUserManager;
import com.yunbao.common.manager.MicedUserManager;
import com.yunbao.common.manager.base.BaseCacheManager; import com.yunbao.common.manager.base.BaseCacheManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.L; import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
@ -41,15 +27,6 @@ import io.agora.rtc2.RtcConnection;
import io.agora.rtc2.RtcEngineConfig; import io.agora.rtc2.RtcEngineConfig;
import io.agora.rtc2.RtcEngineEx; import io.agora.rtc2.RtcEngineEx;
import io.agora.rtc2.video.VideoCanvas; import io.agora.rtc2.video.VideoCanvas;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import io.rong.imkit.IMCenter;
import io.rong.imlib.IRongCallback;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.Message;
import io.rong.message.TextMessage;
/** /**
* 声网用户管理类 * 声网用户管理类
@ -120,9 +97,14 @@ public class SWAuManager extends BaseCacheManager {
//链接包声网加载下载的 So文件 //链接包声网加载下载的 So文件
String cpuAbi = ""; String cpuAbi = "";
cpuAbi = Build.CPU_ABI; cpuAbi = Build.CPU_ABI;
File file = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), com.yunbao.common.Constants.DOWNLOAD_SO + File.separator + cpuAbi); File file = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), com.yunbao.common.Constants.DOWNLOAD_Agora_SO + File.separator + cpuAbi);
config.mNativeLibPath = file.getAbsolutePath(); config.mNativeLibPath = file.getAbsolutePath();
Log.i("downLoad", "config.mNativeLibPath 1 = " + config.mNativeLibPath); Log.i("downLoad", "声网 SO Path = " + config.mNativeLibPath);
// 美颜SO设置
File file_FaceUnity = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), com.yunbao.common.Constants.DOWNLOAD_FaceUnity_SO + File.separator + cpuAbi);
faceunity.LoadConfig.loadLibrary(file_FaceUnity.getAbsolutePath());
Log.i("downLoad", "美颜SO Path = " + file_FaceUnity.getAbsolutePath());
} }
// 创建并初始化 RtcEngine // 创建并初始化 RtcEngine
@ -151,7 +133,7 @@ public class SWAuManager extends BaseCacheManager {
//链接包声网加载下载的 So文件 //链接包声网加载下载的 So文件
String cpuAbi = ""; String cpuAbi = "";
cpuAbi = Build.CPU_ABI; cpuAbi = Build.CPU_ABI;
File file = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), com.yunbao.common.Constants.DOWNLOAD_SO + File.separator + cpuAbi); File file = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), com.yunbao.common.Constants.DOWNLOAD_Agora_SO + File.separator + cpuAbi);
config.mNativeLibPath = file.getAbsolutePath(); config.mNativeLibPath = file.getAbsolutePath();
Log.i("downLoad", "config.mNativeLibPath 2 = " + config.mNativeLibPath); Log.i("downLoad", "config.mNativeLibPath 2 = " + config.mNativeLibPath);
} }

View File

@ -1,13 +1,10 @@
package io.agora.beautyapi.faceunity.agora; package io.agora.beautyapi.faceunity.agora;
import android.app.Activity; import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.SurfaceView; import android.view.SurfaceView;
import android.widget.FrameLayout; import android.widget.FrameLayout;
@ -19,9 +16,7 @@ import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.SwTokenModel; import com.yunbao.common.bean.SwTokenModel;
import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.base.BaseCacheManager; import com.yunbao.common.manager.base.BaseCacheManager;
import com.yunbao.common.utils.DebugUtils;
import com.yunbao.common.utils.L; import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
@ -44,7 +39,6 @@ import io.agora.rtc2.ChannelMediaOptions;
import io.agora.rtc2.Constants; import io.agora.rtc2.Constants;
import io.agora.rtc2.IRtcEngineEventHandler; import io.agora.rtc2.IRtcEngineEventHandler;
import io.agora.rtc2.RtcConnection; import io.agora.rtc2.RtcConnection;
import io.agora.rtc2.RtcEngine;
import io.agora.rtc2.RtcEngineConfig; import io.agora.rtc2.RtcEngineConfig;
import io.agora.rtc2.RtcEngineEx; import io.agora.rtc2.RtcEngineEx;
import io.agora.rtc2.video.ContentInspectConfig; import io.agora.rtc2.video.ContentInspectConfig;
@ -130,12 +124,11 @@ public class SWManager extends BaseCacheManager {
config.mContext = mContext; config.mContext = mContext;
config.mAppId = CommonAppConfig.getSwAppId(); config.mAppId = CommonAppConfig.getSwAppId();
config.mEventHandler = mRtcEventHandler; config.mEventHandler = mRtcEventHandler;
if(CommonAppConfig.IS_GOOGLE_PLAY == 0){ if(CommonAppConfig.IS_GOOGLE_PLAY == 0){
//链接包声网加载下载的 So文件 //链接包声网加载下载的 So文件
String cpuAbi = ""; String cpuAbi = "";
cpuAbi = Build.CPU_ABI; cpuAbi = Build.CPU_ABI;
File file = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), com.yunbao.common.Constants.DOWNLOAD_SO + File.separator + cpuAbi); File file = new File(mContext.getDir("lib", Context.MODE_PRIVATE).getAbsoluteFile(), com.yunbao.common.Constants.DOWNLOAD_Agora_SO + File.separator + cpuAbi);
config.mNativeLibPath = file.getAbsolutePath(); config.mNativeLibPath = file.getAbsolutePath();
Log.i("downLoad", "config.mNativeLibPath 2 = " + config.mNativeLibPath); Log.i("downLoad", "config.mNativeLibPath 2 = " + config.mNativeLibPath);
} }
@ -176,7 +169,6 @@ public class SWManager extends BaseCacheManager {
anchorContainer.addView(surfaceView); anchorContainer.addView(surfaceView);
Config config = new Config(mContext, mRtcEngine, FURenderer.INSTANCE.mFURenderKit, null, CaptureMode.Agora, 0, false, new CameraConfig(MirrorMode.MIRROR_NONE, MirrorMode.MIRROR_NONE)); Config config = new Config(mContext, mRtcEngine, FURenderer.INSTANCE.mFURenderKit, null, CaptureMode.Agora, 0, false, new CameraConfig(MirrorMode.MIRROR_NONE, MirrorMode.MIRROR_NONE));
faceUnityBeautyAPI.initialize(config); faceUnityBeautyAPI.initialize(config);
faceUnityBeautyAPI.setBeautyPreset(BeautyPreset.CUSTOM); faceUnityBeautyAPI.setBeautyPreset(BeautyPreset.CUSTOM);
//FaceUnityBeautyManage.getInstance().mFURenderKit.setFaceBeauty(); //FaceUnityBeautyManage.getInstance().mFURenderKit.setFaceBeauty();

View File

@ -45,6 +45,7 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.faceunity.wrapper.faceunity;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.jakewharton.rxbinding3.view.RxView; import com.jakewharton.rxbinding3.view.RxView;