互动视频
  • iOS
  • Android : Java
  • macOS
  • Windows
  • Linux
  • Web
  • 小程序
  • Electron
  • 概述
  • 限制说明
  • SDK 下载
  • 快速开始
  • 常用功能
  • 推拉流进阶
  • 视频进阶
  • 音频进阶
  • 其他功能
  • 废弃接口
  • API 文档
  • 常见错误码
  • 常见问题
  • AI教育
  • KTV 合唱
  • 视频直播
  • 视频通话
  • 游戏直播
  • 直播答题
  • 娃娃机
  • 文档中心
  • 互动视频
  • 快速开始
  • 初始化

初始化

更新时间:2023-09-15 18:33

1 功能简介

集成 SDK 完成后,要想使用 SDK 的功能,还需要对 SDK 进行初始化操作。

建议开发者在初始化 App 的同时,初始化 SDK。

2 使用步骤

2.1 申请 AppID 与 AppSign

请在 ZEGO 控制台 申请 SDK 初始化需要的 AppID 和 AppSign,如何申请请查看 获取 AppID 和 AppSign 指引

2.2 设置 SDK 上下文

在初始化 SDK 之前,需要配置日志大小与外部加载 so 路径等一些参数。这些参数 SDK 会回调 SDKContextEx 来获取,在项目中 ApplicaitononCreate() 中添加如下代码 对 SDK 上下文进行设置。

ZegoLiveRoom.setSDKContext(new ZegoLiveRoom.SDKContextEx() {

    @Override
    public long getLogFileSize() {
       return 0;  // 单个日志文件的大小,必须在 [5M, 100M] 之间;当返回 0 时,表示关闭写日志功能,不推荐关闭日志。
    }

    @Override
    public String getSoFullPath() {

       return null; // return null 表示使用默认方式加载 libzegoliveroom.so
                // 此处可以返回 so 的绝对路径,用来指定从这个位置加载 libzegoliveroom.so,确保应用具备存取此路径的权限
    }

    @Override
    public String getLogPath() {
       return null; //  return null 表示日志文件会存储到默认位置,如果返回非空,则将日志文件存储到该路径下,注意应用必须具备存取该目录的权限
    }

    @Override
    public Application getAppContext() {
       return zegoApplication; // android上下文. 不能为null
    }
}

2.3 设置测试环境

  • 针对 2021-11-16 及之前在 ZEGO 控制台 创建的项目:

    • 从控制台申请的 AppID 和 AppSign 等信息默认是测试环境,需要在初始化 SDK 前设置测试环境,否则 SDK 会初始化失败。应用正式上线前,请向 ZEGO 商务人员申请开启正式环境。
    • setTestEnv 接口中的 “useTestEnv” 参数设置为 “true” 时表示使用测试环境;为 “false” 时表示使用正式环境。
  • 针对 2021-11-16 之后在 ZEGO 控制台 创建的项目:

    • 控制台分配的 AppID 和 AppSign 等信息都为正式环境。
    • setTestEnv 接口中的 “useTestEnv” 参数取值必须修改为 “false”,表示使用正式环境。

示例代码如下:

// 当 App 集成完成后,再向 ZEGO 申请正式环境。
ZegoLiveRoom.setTestEnv(true); // 为 true 则说明开启测试环境,为 false 则说明使用正式环境

2.4 初始化 SDK

使用 AppID 与 AppSign 初始化 SDK。

注意:在 java 中 appSign 需要强制成 byte 原因:在 java 中,整数默认是 int 类型, 其次初始化 SDK 必须要先设置 SDKContext

示例代码如下:


public class ZegoApplication extends Application {

    static final public long appID = 123456789L;
    // 需要强转成 byte 类型,原因: 在java中,整数默认是 int 类型
    static final public long appSign  = new byte[]{ (byte) 0x91, (byte) 0x93, (byte) 0xcc, (byte) 0x66 };
    @Override
    public void onCreate() {
        super.onCreate();
     g_ZegoApi = new ZegoLiveRoom();    
        // 创建单例对象,SDK的引擎对象是单例模式
        // 初始化 SDK, appID 与 appSign 开发者如果还没有申请, 可通过 <a>https://console.zego.im/acount/login</a> 申请 AppID
        // AppID 和 AppSign 由 ZEGO 分配给各 App。其中,为了安全考虑,建议将 AppSign 存储在 App 的业务后台,需要使用时从后台获取
        // 如果不需要再继续使用 SDK 可调用 g_ZegoApi.unInitSDK() 释放SDK
        g_ZegoApi.initSDK(appID, appSign, new IZegoInitSDKCompletionCallback() {
            @Override
            public void onInitSDK(int errorCode) {
                // errorCode 非0 代表初始化 SDK 失败
                // 具体错误码说明请查看<a> https://doc.zego.im/CN/5524.html </a>
            }
        });
    }     
}

初始化 SDK 错误码

2.5 释放 SDK

开发者如果不需要再继续使用 SDK 可以调用如下函数释放 SDK。 注意:释放 SDK 后需要再使用 SDK 时,必须重新初始化 SDK。


g_ZegoApi.unInitSDK();

3 API 参考列表

方法 描述
initSDK 初始化 SDK
setSDKContext 设置 SDK 上下文
setTestEnv 测试环境开关
setVerbose 打开调试信息开关
unInitSDK 释放 SDK

4 相关文档

完成了初始化 SDK 的操作后,可以使用 ZEGO SDK 依次完成如下功能来实现基础的通话或者直播。

本篇目录