初始化相关
sharedEngineWithAppId:delegate:
创建并初始化 AgoraRtcEngineKit
。
Objective-C
+ (instancetype _Nonnull)sharedEngineWithAppId:(NSString * _Nonnull)appId
delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate;
详情
AgoraRtcEngineKit 类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
注意
- 请确保在调用其他 API 前先调用该方法创建并初始化 AgoraRtcEngineKit。
- 调用该方法和 sharedEngineWithConfig:delegate: 均能创建 AgoraRtcEngineKit 实例。该方法与 sharedEngineWithConfig:delegate: 的区别在于,sharedEngineWithConfig:delegate: 支持在创建 AgoraRtcEngineKit 实例时进行更多配置,如指定访问区域、设置日志文件等。
- SDK 只支持每个 App 创建一个 AgoraRtcEngineKit 实例。
参数
- appId
- 声网为 App 开发者签发的 App ID。 使用同一个 App ID 的 App 才能进入同一个频道进行通话或直播。一个 App ID 只能用于创建一个 AgoraRtcEngineKit。如需更换 App ID,必须先调用 destroy 销毁当前 AgoraRtcEngineKit 再重新创建。
- delegate
- AgoraRtcEngineKit 的事件句柄,详见 AgoraRtcEngineDelegate。
返回值
- 方法调用成功,返回一个正常初始化的 AgoraRtcEngineKit 对象。
- 方法调用失败,返回一个 AgoraRtcEngineKit 对象,但其内部的 engine 为
nil
,并通过delegate
的 rtcEngine:didOccurError: 回调返回具体的错误码。
destroy:
销毁 AgoraRtcEngineKit
实例并释放相关资源。
Objective-C
(void)destroy:(void (^ _Nullable)(void))engineReleasedBlock NS_SWIFT_NAME(destroy(_:));
当不再需要实时通信功能时,调用该方法以释放 AgoraRtcEngineKit 实例及其相关资源,释放的资源可供其他操作使用。推荐在用户偶尔进行语音或视频通话的场景中使用。
调用限制
无。
参数
- engineReleasedBlock
- 当 AgoraRtcEngineKit 被销毁时触发的回调,用于配置同步或异步销毁:
- 非
nil
:异步销毁。方法会立即返回,此时引擎资源可能尚未完全释放。引擎销毁完成后将触发engineReleasedBlock
回调。 nil
:同步销毁。方法仅在引擎资源完全释放后才返回。
- 非
sharedEngineWithConfig:delegate:
创建并初始化 AgoraRtcEngineKit
。
Objective-C
+ (instancetype _Nonnull)sharedEngineWithConfig:(AgoraRtcEngineConfig * _Nonnull)config
delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate;
该方法和 sharedEngineWithAppId:delegate: 均能创建 AgoraRtcEngineKit 实例。该方法与 sharedEngineWithAppId:delegate: 的区别在于,该方法支持在创建 AgoraRtcEngineKit 实例时进行更多配置,如指定访问区域、设置日志文件等。
注意
AgoraRtcEngineKit 类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
调用时机
请确保在调用其他 API 前先调用该方法创建并初始化 AgoraRtcEngineKit。
调用限制
SDK 只支持每个 App 创建一个 AgoraRtcEngineKit 实例。
参数
- config
AgoraRtcEngineKit 实例的配置。详见 AgoraRtcEngineConfig。
- delegate
- AgoraRtcEngineKit 的事件句柄,详见 AgoraRtcEngineDelegate。
返回值
- 方法调用成功,返回一个成功初始化的 AgoraRtcEngineKit 对象。
- 方法调用失败,返回一个 AgoraRtcEngineKit 对象,但其内部的 engine 为
nil
,并通过delegate
的 rtcEngine:didOccurError: 回调返回具体的错误码。
destroy
销毁 AgoraRtcEngineKit
对象。
Objective-C
+ (void)destroy;
详情
该方法释放 SDK 使用的所有资源。有些 App 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作,该方法适用于此类情况。
调用该方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能,你必须依次重新调用 sharedEngineWithConfig:delegate: 方法创建一个新的 AgoraRtcEngineKit 对象。
注意
- 不建议在 SDK 的回调中调用 destroy,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。