RtcEngineConfig
RtcEngineConfig
定义。
Java
public class RtcEngineConfig {
public Context mContext;
public String mAppId;
public Constants.AreaCode mAreaCode;
public IAgoraEventHandler mEventHandler;
public int mChannelProfile;
public int mAudioScenario;
public boolean mAutoRegisterAgoraExtensions;
public List<String> mExtensionList;
public IMediaExtensionObserver mExtensionObserver;
public LogConfig mLogConfig;
public String mNativeLibPath;
public boolean mDomainLimit;
public static class LogConfig {
public String filePath;
public int fileSizeInKB;
public int level = Constants.LogLevel.getValue(Constants.LogLevel.LOG_LEVEL_INFO);
@CalledByNative("LogConfig")
public String getFilePath() {
return filePath;
}
@CalledByNative("LogConfig")
public int getFileSize() {
return fileSizeInKB;
}
@CalledByNative("LogConfig")
public int getLevel() {
return level;
}
}
public RtcEngineConfig() {
mContext = null;
mAppId = "";
mChannelProfile = Constants.CHANNEL_PROFILE_LIVE_BROADCASTING;
mEventHandler = null;
mAreaCode = Constants.AreaCode.AREA_CODE_GLOB;
mExtensionList = new ArrayList<>();
mExtensionObserver = null;
mLogConfig = new LogConfig();
mDomainLimit = false;
mAutoRegisterAgoraExtensions = true;
}
public void addExtension(String providerName) {
mExtensionList.add(providerName);
}
@CalledByNative
public Context getContext() {
return mContext;
}
@CalledByNative
public String getAppId() {
return mAppId;
}
@CalledByNative
public int getChannelProfile() {
return mChannelProfile;
}
@CalledByNative
public int getAudioScenario() {
return mAudioScenario;
}
@CalledByNative
public int getAreaCode() {
return Constants.AreaCode.getValue(mAreaCode);
}
@CalledByNative
public IMediaExtensionObserver getExtensionObserver() {
return mExtensionObserver;
}
@CalledByNative
public LogConfig getLogConfig() {
return mLogConfig;
}
}
mEventHandler
RtcEngine
的事件句柄,详见 IRtcEngineEventHandler
。
mAppId
声网为 app 开发者签发的 App ID。 使用同一个 App ID 的 app 才能进入同一个频道进行通话或直播。一个 App ID 只能用于创建一个 RtcEngine
。如需更换 App ID,必须先调用 destroy
销毁当前 RtcEngine
再重新创建。
mContext
安卓活动上下文。
mNativeLibPath
指定 .so
文件的存储目录。存储目录必须为有效的 app 的私有目录,可以通过 Context.getDir()
获取。
- 如果你设置了该参数,SDK 会在你指定的目录下自动加载
.so
文件,使 app 在运行时动态加载需要的.so
文件,从而减小 app 的包体积。 - 如果你不设置该参数或将其设置为 null,SDK 会从 app 默认的
native unreal bpLibraryPath
中加载打包所需的.so
文件,相对于上一种方式,app 的包体积会增加。
- 该设置仅适用于手动集成 SDK,不适用于通过 Maven Central 或 JitPack 集成 SDK 的情况。
- 务必确保你设置的路径为有效路径,否则会导致
RtcEngine
创建失败。
mChannelProfile
频道使用场景。
- CHANNEL_PROFILE_COMMUNICATION (0):通信。当频道中只有两个用户时,建议使用该场景。
- CHANNEL_PROFILE_LIVE_BROADCASTING (1):直播。当频道中超过两个用户时,建议使用该场景。
- CHANNEL_PROFILE_GAME (2):游戏语音场景。
废弃请改用 CHANNEL_PROFILE_LIVE_BROADCASTING。 - CHANNEL_PROFILE_CLOUD_GAMING (3):互动。该场景对延时进行了优化。如果你的场景中有用户需要频繁互动,建议使用该场景。
废弃请改用 CHANNEL_PROFILE_LIVE_BROADCASTING。
废弃:
请改用 CHANNEL_PROFILE_LIVE_BROADCASTING。
废弃:
请改用 CHANNEL_PROFILE_LIVE_BROADCASTING。
mAudioScenario
音频场景。不同的音频场景下,设备的音量类型是不同的。
- AUDIO_SCENARIO_DEFAULT (0): (默认)自动场景,根据用户角色和音频路由自动匹配合适的音质。
- AUDIO_SCENARIO_GAME_STREAMING (3): 高音质场景,适用于音乐为主的场景。
- AUDIO_SCENARIO_CHATROOM (5): 聊天室场景,适用于用户需要频繁上下麦的场景。该场景下,观众会收到申请麦克风权限的弹窗提示。
- AUDIO_SCENARIO_CHORUS (7): 合唱场景。适用于网络条件良好,要求极低延时的实时合唱场景。
注意: 使用该枚举前,你需要调用getAudioDeviceInfo
获取音频设备是否支持极低延时采集和播放。只有在支持极低延时(isLowLatencyAudioSupported
=true
)的音频设备上,才能够体验到极低延时。 - AUDIO_SCENARIO_MEETING (8): 会议场景,适用于人声为主的多人会议。
mAreaCode
服务器的访问区域。该功能为高级设置,适用于有访问安全限制的场景。支持的区域详见 AreaCode
。区域码支持位操作。
mLogConfig
设置 SDK 输出的日志文件。详见 LogConfig
。
默认情况下,SDK 会生成 5 个 SDK 日志文件和 5 个 API 调用日志文件,规则如下:
- SDK 日志文件的名称分别为:
agorasdk.log
、agorasdk.1.log
、agorasdk.2.log
、agorasdk.3.log
、agorasdk.4.log
。 - API 调用日志文件的名称分别为:
agoraapi.log
、agoraapi.1.log
、agoraapi.2.log
、agoraapi.3.log
、agoraapi.4.log
。 - 每个 SDK 日志文件的默认大小为 1,024 KB;API 调用日志文件的默认大小为 2,048 KB。日志文件均为 UTF-8 编码。
- 最新的日志永远写在
agorasdk.log
和agoraapi.log
中。 - 当
agorasdk.log
写满后,SDK 会按照以下顺序对日志文件进行操作:
- 删除
agorasdk.4.log
文件(如有)。 - 将
agorasdk.3.log
重命名为agorasdk.4.log
。 - 将
agorasdk.2.log
重命名为agorasdk.3.log
。 - 将
agorasdk.1.log
重命名为agorasdk.2.log
。 - 新建
agorasdk.log
文件。 agoraapi.log
文件的覆盖规则与agorasdk.log
相同。
mExtensionList
插件列表。
mExtensionObserver
mDomainLimit
是否开启域名限制:
true
:开启域名限制。该设置适用于 IoT 设备使用物联网卡进行网络访问的场景。SDK 会仅连接到已向运营商报备的域名或 IP 白名单中的服务器。false
:(默认)关闭域名限制。该设置适用于大部分普通场景。
mAutoRegisterAgoraExtensions
是否在初始化 RtcEngine
时自动注册声网插件:
true
:(默认)初始化RtcEngine
时自动注册声网插件。false
:初始化RtcEngine
时不注册声网插件。你需要调用enableExtension
来注册声网插件。