动态加载so文件方案实现

This commit is contained in:
gongduoxiang
2024-07-30 13:39:37 +08:00
parent 3a12d848e1
commit 1f66204031
31 changed files with 1612 additions and 19 deletions

View File

@@ -30,6 +30,7 @@ import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import java.util.ArrayList;
import java.util.List;
import io.agora.rtc2.ChannelMediaOptions;
@@ -62,6 +63,7 @@ public class SWAuManager extends BaseCacheManager {
private FrameLayout pkContainer2; //pk主播视图2
private FrameLayout pkContainer3; //pk主播视图3
private FrameLayout linkUserContainer;//连麦用户视图
private List<LiveBean> mDatas=new ArrayList<>();//保存数据 如果还没初始化的时候就把这个数据保存起来等加载完so再来添加
private int liveMicUid;
@@ -113,6 +115,7 @@ public class SWAuManager extends BaseCacheManager {
config.mContext = mContext;
config.mAppId = CommonAppConfig.getSwAppId();
config.mEventHandler = mRtcEventHandler;
config.mNativeLibPath=mContext.getFilesDir().getAbsolutePath() + "/dynamic_so/";
// 创建并初始化 RtcEngine
mRtcEngine = (RtcEngineEx) RtcEngineEx.create(config);
} catch (Exception e) {
@@ -441,9 +444,21 @@ public class SWAuManager extends BaseCacheManager {
}
public void preloadChannel(List<LiveBean> uids) {
for (int i = 0; i < uids.size(); i++) {
int code = mRtcEngine.preloadChannel(CommonAppConfig.SWToken, getChannelName(uids.get(i).getUid()), Integer.parseInt(CommonAppConfig.getInstance().getUid()));
L.eSw("设置秒开数据 uid" + uids.get(i).getUid() + " --- userName:" + uids.get(i).getUserNiceName() + " code " + code);
if (mRtcEngine==null){
mDatas.addAll(uids);
}else {
for (int i = 0; i < uids.size(); i++) {
int code = mRtcEngine.preloadChannel(CommonAppConfig.SWToken, getChannelName(uids.get(i).getUid()), Integer.parseInt(CommonAppConfig.getInstance().getUid()));
L.eSw("设置秒开数据 uid" + uids.get(i).getUid() + " --- userName:" + uids.get(i).getUserNiceName() + " code " + code);
}
}
}
public void preloadChannel() {
if (mRtcEngine!=null && mDatas.size()>0){
for (int i = 0; i < mDatas.size(); i++) {
int code = mRtcEngine.preloadChannel(CommonAppConfig.SWToken, getChannelName(mDatas.get(i).getUid()), Integer.parseInt(CommonAppConfig.getInstance().getUid()));
L.eSw("设置秒开数据 uid" + mDatas.get(i).getUid() + " --- userName:" + mDatas.get(i).getUserNiceName() + " code " + code);
}
}
}
}