实时音频
  • 平台类型
  • 框架 / 引擎

初始化

更新时间:2020-06-04 17:47

1 功能简介

集成 SDK 完成后,要想使用 SDK 的功能,需要先 创建引擎 Engine ,再进一步调用 Engine 提供的各项 API。

2 使用步骤

2.1 申请 AppID 与 AppSign

请在 即构管理控制台 申请创建引擎需要的 AppID 和 AppSign,如何申请请查看 获取 AppID 和 AppSign 指引

2.2 创建/销毁 Engine

接口原型

/// 创建引擎单例对象
///
/// 在调用其他 API 前需要先创建并初始化引擎;SDK 只支持创建一个 ZegoExpressEngine 实例,多次调用此接口返回的都是同一个对象。
///
/// @param appID ZEGO 为开发者签发的应用 ID,请从 ZEGO 管理控制台 https://console-express.zego.im/ 申请,取值范围为 0~4294967295。
/// @param appSign 每个 AppID 对应的应用签名,请从 ZEGO 管理控制台申请。为 64 字符的字符串。每个字符范围为'0'~'9', 'a'~'z'。
/// @param isTestEnv 选择使用测试环境还是正式商用环境,正式环境需要在 ZEGO 管理控制台提交工单配置。测试环境为测试开发用,限制房间数为 30,用户数为 230。正式环境 App 正式上线用,ZEGO 会根据开发者在管理控制台提交的配置记录提供相应的服务资源。测试环境与正式环境是两套环境,不可互通。
/// @param scenario 所属的应用场景,开发者可根据所开发的 App 的场景选择其中一个,引擎会通过所设置的场景预设置一个针对具体场景的较为通用的设置。当设置具体场景后,开发者若有定制化参数设置,依然可以调用具体接口来设置具体参数。
/// @param eventHandler 事件通知回调。传 [nil] 则意味着不接收任何回调通知。之后也可通过 [setEventHandler] 进行设置
/// @return 引擎单例对象
+ (ZegoExpressEngine *)createEngineWithAppID:(unsigned int)appID appSign:(NSString *)appSign isTestEnv:(BOOL)isTestEnv scenario:(ZegoScenario)scenario eventHandler:(nullable id<ZegoEventHandler>)eventHandler;
/// 异步销毁引擎单例对象
///
/// 用于释放 SDK 使用的资源。
///
/// @param callback 销毁引擎完成的通知回调,可监听此回调以确保设备硬件资源被释放完成。本回调只作为引擎内部资源释放完成的通知,开发者不可以在此回调内释放与引擎相关的资源。若开发者只使用 SDK 来实现音视频功能,该参数可传 [nil]。
+ (void)destroyEngine:(nullable ZegoDestroyCompletionCallback)callback;

调用示例

  • 创建引擎
// 引入 ZegoExpressEngine.h 头文件
#import <ZegoExpressEngine/ZegoExpressEngine.h>

// 遵循 ZegoEventHandler 协议以处理您关心的事件回调
@interface ViewController () <ZegoEventHandler>
// ······
@end
// 填写 appID 和 appSign
unsigned int appID = ;  // 请通过官网注册获取,格式为:1234567890
NSString *appSign = ;  //请通过官网注册获取,格式为:@"0123456789012345678901234567890123456789012345678901234567890123"(共64个字符)

// 创建引擎,使用测试环境,通用场景接入,并注册 self 为 eventHandler 回调代理
// 不需要注册回调的话,eventHandler 参数可以传 nil,后续可调用 "-setEventHandler:" 方法设置回调代理
[ZegoExpressEngine createEngineWithAppID:appID appSign:appSign isTestEnv:YES scenario:ZegoScenarioGeneral eventHandler:self];
  • 销毁引擎
[ZegoExpressEngine destroyEngine:nil];

2.3 关注事件回调

可以根据场景需要,在初始化后监听想要关注的事件通知,比如远端用户加入房间,设备异常事件,音视频首帧等。

接口原型

/// 设置事件通知回调,传 [nil] 则清空已设置的回调
///
/// 调用此接口将覆盖 [createEngine] 时传入的回调
///
/// @param eventHandler 事件通知回调。开发者应根据自身业务场景,重写回调的相关方法以关注特定的通知。SDK 主要的回调方法都在 [IZegoEventHandler] 里。
- (void)setEventHandler:(nullable id<ZegoEventHandler>)eventHandler;

调用示例


// 遵循 ZegoEventHandler 协议以处理您关心的事件回调
@interface ViewController () <ZegoEventHandler>
// ······
@end


@implementation ViewController

// ······

// 举例:监听房间内流数量变更的通知
- (void)onRoomStreamUpdate:(ZegoUpdateType)updateType streamList:(NSArray<ZegoStream *> *)streamList roomID:(NSString *)roomID {
    // ······
}

// 根据需要实现其他的事件回调

// ······

@end

创建引擎错误码

注意:

ZegoEventHandler 代理中包含了 SDK 的所有事件回调接口,不需要实现所有的回调接口,根据实际需要实现其中的某些回调方法。

3 API 参考列表

方法 描述
+createEngineWithAppID:appSign:isTestEnv:scenario:eventHandler: 创建引擎
+destroyEngine: 销毁引擎
+getVersion 获取 SDK 版本号
-setDebugVerbose:language: 打开调试信息开关
-setEventHandler 设置事件回调

4 相关文档

完成了创建引擎的操作后,需要依次完成如下功能来实现基础的通话或者直播。