RtcEngineContext
用于配置 RtcEngineContext 实例。
C++
struct RtcEngineContext {
IRtcEngineEventHandler* eventHandler;
const char* appId;
void* context;
CHANNEL_PROFILE_TYPE channelProfile;
const char* license;
AUDIO_SCENARIO_TYPE audioScenario;
unsigned int areaCode;
commons::LogConfig logConfig;
Optional<THREAD_PRIORITY_TYPE> threadPriority;
bool useExternalEglContext;
bool domainLimit;
bool autoRegisterAgoraExtensions;
};
eventHandler
用于 IRtcEngine 的事件处理器。详见 IRtcEngineEventHandler。
appId
由声网为你的项目签发的 App ID。只有在相同 App ID 下的用户才能加入同一个频道并互相通信。一个 App ID 只能用于创建一个 IRtcEngine 实例。若需更换 App ID,需调用 release 销毁当前的 IRtcEngine 实例,然后创建一个新的实例。
context
在 Windows 平台,该参数为应用窗口句柄。设置后可在设备通电状态下连接或断开视频设备。
channelProfile
频道场景类型。详见 CHANNEL_PROFILE_TYPE。
license
用于连接频道时验证的 License,根据 License 收费。
audioScenario
音频场景类型,不同场景下设备使用不同的音量类型。详见 AUDIO_SCENARIO_TYPE。
areaCode
连接区域。该高级功能适用于有区域限制的场景,支持的区域详见 AREA_CODE。区域码支持按位操作。
logConfig
日志配置。详见 LogConfig。 默认情况下,SDK 会生成五个 SDK 日志文件和五个 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。 - 每个日志文件的默认大小为 2048 KB,编码为 UTF-8。
- SDK 会将最新日志写入
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相同。
threadPriority
SDK 通用线程的线程优先级。详见
THREAD_PRIORITY_TYPE。useExternalEglContext
信息
该属性仅适用于 Android 平台。
- true:使用当前线程中的 EGL 上下文。
- false:(默认)不使用当前线程中的 EGL 上下文。
domainLimit
是否启用域名限制:
- true:启用域名限制。适用于 IoT 设备使用物联网卡接入网络的场景。SDK 仅连接已上报给运营商的域名或 IP 白名单中的服务器。
- false:(默认)不启用域名限制。适用于大多数常见场景。
autoRegisterAgoraExtensions
是否在初始化 IRtcEngine 时自动注册声网插件:
- true:(默认)自动注册插件。
- false:不自动注册插件。你需要调用 enableExtension 手动注册插件。