即时通讯
  • iOS
  • Android
  • macOS
  • Windows
  • Web
  • 小程序
  • Flutter : Dart
  • Unity3D
  • uni-app
  • React Native
  • 产品简介
  • 下载
  • 快速开始
    • 跑通示例源码
    • 实现基本消息收发
  • 用户相关
  • 房间相关
  • 群组相关
  • 消息相关
  • 呼叫邀请
  • 会话管理
  • 缓存管理
  • 离线推送
  • 语音组件
  • 客户端 API
  • 服务端 API
  • 迁移方案
  • SDK 错误码
  • 常见问题
  • 文档中心
  • 即时通讯
  • 语音组件
  • 集成 SDK

集成 SDK

更新时间:2024-04-17 19:20

本文介绍如何集成 ZIM Audio SDK。

前提条件

在集成 ZIM Audio SDK 之前,请确保

  • 开发环境满足以下要求:
    • 已安装 Flutter。
    • 已安装 Dart 且版本为 [2.12.0, 4.0.0)。
    • 测试设备满足以下要求:
      • iOS 11.0 或以上版本的 iOS 真机
      • Android 4.1 或以上的 Android 真机,请开启“允许调试”选项。。
  • 已在 ZEGO 控制台 创建项目,获取到了接入 ZIM SDK 服务所需的 AppID、AppSign。ZIM 服务权限不是默认开启的,使用前,请先在 ZEGO 控制台 自助开通 ZIM 服务(详情请参考控制台的 服务配置 - 即时通讯 - 开通服务),若无法开通 ZIM 服务,请联系 ZEGO 技术支持开通。
  • 已集成 ZIM SDK,详情请参考 快速开始 - 实现基本收发消息 的 “2 集成 SDK”。

导入 SDK

  1. 打开 “pubspec.yaml” 文件,以 “pub” 形式,添加 “zego_zim_audio” 依赖:

    dependencies:
        # 请从发布日志查询 SDK 最新版本,并将 x.y.z 修改为具体的版本号
        zego_zim_audio: ^x.y.z
  2. 添加完成并保存文件后,在终端执行 flutter pub get

设置权限

使用 ZIM Audio SDK 前,请设置麦克风权限,以实现采集语音。

iOS Android
  1. 在 Xcode 中,选择 “TARGETS > Info > Custom iOS Target Properties” 菜单。
  1. 单击 “+” 添加按钮,选择Privacy - Microphone Usage Description,添加麦克风权限。

开发者可以根据实际应用需要,设置应用所需权限。

进入 “app/src/main” 目录,打开 “AndroidManifest.xml” 文件,添加权限。

<!-- SDK 必须使用的权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO" />

由于 Android 6.0 及以上版本在一些比较重要的权限上要求必须申请动态权限,不能只通过 “AndroidMainfest.xml” 文件申请静态权限。因此还需要参考执行如下代码,其中 “requestPermissions” 是 “Activity” 的方法。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) !=
            PackageManager.PERMISSION_GRANTED) {
        String[] permissions = {Manifest.permission.RECORD_AUDIO};
        requestPermissions(permissions, PERMISSION_REQUEST_CODE);
    }
}

具体的权限说明如下:

必要性 权限 权限说明 申请原因
必要权限
RECORD_AUDIO
录制音频权限。
发送音频时需要使用该权限。

防止混淆

如果您使用 Flutter 框架开发 Android 应用,还需要在 “proguard-rules.pro” 文件中,为 SDK 添加 -keep 类的配置,防止混淆 SDK 公共类名称。

-keep class **.zego.**{*;}
本篇目录