初始化相关
sharedEngineWithAppId
创建并初始化 AgoraRtcEngineKit
。
+ (instancetype _Nonnull)sharedEngineWithAppId:(NSString * _Nonnull)appId
delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate;
AgoraRtcEngineKit
类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
注意:
-
请确保在调用其他 API 前先调用该方法创建并初始化
AgoraRtcEngineKit
。 -
调用该方法和
sharedEngineWithConfig
均能创建AgoraRtcEngineKit
实例。该方法与sharedEngineWithConfig
的区别在于,sharedEngineWithConfig
支持在创建AgoraRtcEngineKit
实例时进行更多配置,如指定访问区域、设置日志文件等。 -
SDK 只支持每个 app 创建一个
AgoraRtcEngineKit
实例。
参数
参数名 | 描述 |
---|---|
appId | 声网为 app 开发者签发的 App ID。 使用同一个 App ID 的 app 才能进入同一个频道进行通话或直播。一个 App ID 只能用于创建一个 |
delegate |
|
返回值
-
方法调用成功,返回一个
AgoraRtcEngineKit
对象。 -
方法调用失败,返回错误码:
-
-1: 一般性的错误(未明确归类)。
-
-2: 设置了无效的参数。
-
-7: SDK 初始化失败。
-
-22: 资源申请失败。当 app 占用资源过多,或系统资源耗尽时,SDK 分配资源失败,会返回该错误。
-
-101: App ID 无效。
-
sharedEngineWithConfig
创建并初始化 AgoraRtcEngineKit
。
+ (instancetype _Nonnull)sharedEngineWithConfig:(AgoraRtcEngineConfig * _Nonnull)config
delegate:(id<AgoraRtcEngineDelegate> _Nullable)delegate;
AgoraRtcEngineKit
类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
注意:
-
请确保在调用其他 API 前先调用该方法创建并初始化
AgoraRtcEngineKit
。 -
调用该方法和
sharedEngineWithAppId
均能创建AgoraRtcEngineKit
实例。该方法与sharedEngineWithAppId
的 区别在于,该方法支持在创建AgoraRtcEngineKit
实例时进行更多配置,如指定访问区域、设置日志文件等。 -
SDK 只支持每个 app 创建一个
AgoraRtcEngineKit
实例。
参数
参数名 | 描述 |
---|---|
config |
|
delegate |
|
返回值
-
方法调用成功,返回一个
AgoraRtcEngineKit
对象。 -
< 0:方法调用失败。
-
-1: 一般性的错误(未明确归类)。
-
-2: 设置了无效的参数。
-
-7: SDK 初始化失败。
-
-22: 资源申请失败。当 app 占用资源过多,或系统资源耗尽时,SDK 分配资源失败,会返回该错误。
-
-101: App ID 无效。
-
destroy
销毁 AgoraRtcEngineKit
对象。
+ (void)destroy;
该方法释放 SDK 使用的所有资源。有些 app 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作,该方法适用于此类情况。
调用该方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能,你必须依次重新调用 sharedEngineWithConfig
方法创建一个新的 AgoraRtcEngineKit
对象。
注意:
-
该方法为同步调用。需要等待
AgoraRtcEngineKit
资源释放后才能执行其他操作(例如:创建一个新的AgoraRtcEngineKit
对象),因此建议在子线程中调用该方法,避免主线程阻塞。 -
不建议在 SDK 的回调中调用
destroy
,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。