初始化相关
sharedEngineWithAppId:delegate:
创建并初始化 AgoraRtcEngineKit 实例。
Objective-C
+ (instancetype _Nonnull)sharedEngineWithAppId:(NSString * _Nonnull)appId
delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate NS_SWIFT_NAME(sharedEngine(withAppId:delegate:));
你可以使用该方法创建并初始化 AgoraRtcEngineKit 实例。该类中所有方法均为异步执行,建议你在同一线程中调用这些方法。
信息
- 在调用其他 API 之前,必须先调用该方法创建 AgoraRtcEngineKit 对象。
- 你可以通过该方法或 sharedEngineWithConfig:delegate: 方法创建 AgoraRtcEngineKit 实例。与该方法相比,sharedEngineWithConfig:delegate: 支持更多配置,例如指定连接区域和设置日志文件。
- 每个 App 仅支持创建一个 AgoraRtcEngineKit 实例。
参数
- appId
- 声网为你的项目签发的 App ID。只有使用相同 App ID 的用户才能加入同一个频道并进行通信。一个 App ID 只能用于创建一个 AgoraRtcEngineKit 实例。若需更换 App ID,你需要先调用 destroy 方法销毁当前实例,然后再创建新的实例。
- delegate
- AgoraRtcEngineKit 的事件回调处理器。详见 AgoraRtcEngineDelegate。
返回值
- 方法调用成功,返回 AgoraRtcEngineKit 对象。
- 方法调用失败,返回一个其内部引擎字段为 nil 的 AgoraRtcEngineKit 对象。你可以通过 delegate 的 rtcEngine:didOccurError: 回调获取错误码。
destroy:
销毁 AgoraRtcEngineKit 实例并释放相关资源。
Objective-C
+ (void)destroy:(void (^ _Nullable)(void))engineReleasedBlock NS_SWIFT_NAME(destroy(_:));
自从
自 v4.6.0 版本新增。
当你不再需要实时通信时,调用此方法以释放 AgoraRtcEngineKit 实例及其相关资源,使这些资源可用于其他操作。推荐在语音或视频通话场景中使用。
参数
- engineReleasedBlock
- 当 AgoraRtcEngineKit 实例被销毁时触发的回调,用于配置同步或异步销毁:
- 非 nil:异步销毁。方法会立即返回,但引擎资源可能尚未完全释放。引擎销毁后会触发
engineReleasedBlock回调。 - nil:同步销毁。方法仅在引擎资源完全释放后才返回。
- 非 nil:异步销毁。方法会立即返回,但引擎资源可能尚未完全释放。引擎销毁后会触发
sharedEngineWithConfig:delegate:
创建并初始化 AgoraRtcEngineKit 实例。
Objective-C
+ (instancetype _Nonnull)sharedEngineWithConfig:(AgoraRtcEngineConfig * _Nonnull)config
delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate NS_SWIFT_NAME(sharedEngine(with:delegate:));
你可以通过调用此方法或调用 sharedEngineWithAppId:delegate: 来创建 AgoraRtcEngineKit 实例。与 sharedEngineWithAppId:delegate: 不同,此方法在创建 AgoraRtcEngineKit 实例时支持更多配置,例如指定连接区域和设置日志文件。
信息
AgoraRtcEngineKit 每个 App 仅支持创建一个实例。AgoraRtcEngineKit 提供的所有方法均为异步执行。声网建议你在同一线程中调用这些方法。
调用时机
在调用其他 API 之前,必须先调用此方法创建 AgoraRtcEngineKit 对象。
参数
- config
- 用于配置 AgoraRtcEngineKit 实例的参数。详见 AgoraRtcEngineConfig。
- delegate
- AgoraRtcEngineKit 的事件回调处理器。详见 AgoraRtcEngineDelegate。
返回值
- 方法调用成功时,返回初始化后的 AgoraRtcEngineKit 对象。
- 方法调用失败时,返回一个其内部引擎字段为 nil 的 AgoraRtcEngineKit 对象。你可以通过 delegate 的 rtcEngine:didOccurError: 回调获取错误码。
destroy
释放 AgoraRtcEngineKit 实例。
Objective-C
+ (void)destroy NS_SWIFT_NAME(destroy());
该方法会释放 SDK 使用的所有资源。适用于用户偶尔进行语音或视频通话的场景。当你不再进行通话时,可以通过该方法释放资源,以便用于其他操作。成功调用该方法后,将无法再使用 SDK 中的任何方法或回调。如需再次使用实时通信功能,必须调用 sharedEngineWithConfig:delegate: 方法重新创建 AgoraRtcEngineKit 实例。
信息
声网不建议你在 SDK 的任何回调中调用 destroy 方法。否则,SDK 需等待回调返回结果后才能释放资源,可能导致死锁。