通过阅读本文,您可以了解如何在iOS端接入AI实时互动音视频智能体。
源码说明
源码下载
下载地址请参见GitHub开源项目。
源码结构
├── iOS // iOS平台的根目录
│ ├── AUIAICall.podspec // pod描述文件
│ ├── Source // 源代码文件
│ ├── Resources // 资源文件
│ ├── Example // Demo代码
│ ├── AUIBaseKits // 基础UI组件
│ ├── README.md // Readme
环境要求
Xcode 16.0 及以上版本,推荐使用最新正式版本
CocoaPods 1.9.3 及以上版本
准备 iOS 11.0 及以上版本的真机
前提条件
已在您的服务端上开发了相关接口或直接部署提供的Server源码,搭建步骤请参见项目部署。
跑通demo
源码下载后,进入Example目录。
在Example目录里执行命令
pod install --repo-update
,自动安装依赖SDK。打开工程文件
AUIAICallExample.xcworkspace
,修改包Id。进入
AUIAICallAgentConfig.swift
文件,配置智能体Id及所在Region。// AUIAICallAgentConfig.swift // 配置智能体id let VoiceAgentId = "你的语音通话智能体Id" let AvatarAgentId = "你的数字人通话智能体Id" let VisionAgentId = "你的视觉理解通话智能体Id" let ChatAgentId = "你的消息对话智能体Id" // 配置区域 let Region = "cn-shanghai"
地域名称
Region Id
华东1(杭州)
cn-hangzhou
华东2(上海)
cn-shanghai
华北2(北京)
cn-beijing
华南1(深圳)
cn-shenzhen
新加坡
ap-southeast-1
完成智能体配置后,您可以通过以下两种方式来启动智能体:
已部署AppServer: 如果你已经在您的服务端上部署了阿里云提供的AppServer源码,您还需要进入文件
AUIAICallAppServer.swift
,修改服务端域名。// AUIAICallAppServer.swift public let AICallServerDomain = "你的应用服务器域名"
未部署AppServer:如果您还未部署AppServer源码,需要快速跑通Demo并体验智能体。那么您需要进入文件
AUIAICallAuthTokenHelper.java
,配置EnableDevelopToken
参数,并从控制台拷贝智能体使用的ARTC的App Id和APP Key,在App端生成启动鉴权Token。说明该方法需在本地填写AppKey等敏感信息,仅适用于体验及开发阶段,不能用于线上发布,以防止因AppKey被盗取而导致的安全事故。
// AUIAICallAuthTokenHelper.swift @objcMembers public class AUIAICallAuthTokenHelper: NSObject { // 设置为true,启动Develop模式 private static let EnableDevelopToken: Bool = true // 从控制台拷贝RTCAppId private static let RTCDevelopAppId: String = "智能体使用的RTC的AppId" // 从控制台拷贝RTCAppKey private static let RTCDevelopAppKey: String = "智能体使用的RTC的AppKey" ... }
获取音视频ARTC应用的AppId和AppKey步骤如下:
选择"Example"Target 进行编译运行。
快速开发自己的AI通话功能
可通过以下几个步骤快速集成AUIAICall到您的APP中,让您的APP具备智能体音视频通话功能。
集成源码
导入AUIAICall:仓库代码下载后,拷贝iOS文件夹到你的APP代码目录下,改名为AUIAICall,与您的Podfile文件在同一层级,可以删除Example和AICallKit目录。
修改Podfile,引入:
AliVCSDK_ARTC:适用于实时互动的音视频终端SDK,也可以使用:AliVCSDK_Standard或AliVCSDK_InteractiveLive,具体集成方式,请参考iOS端。
ARTCAICallKit:AI实时互动通话场景SDK。
AUIFoundation:基础UI组件。
AUIAICall:AI通话场景UI组件源码。
#需要iOS11.0及以上才能支持 platform :ios, '11.0' target '你的App target' do # 根据自己的业务场景,集成合适的音视频终端SDK,支持:AliVCSDK_ARTC、AliVCSDK_Standard、AliVCSDK_InteractiveLive pod 'AliVCSDK_ARTC', '~> 7.4.0' # AI实时互动通话场景SDK pod 'ARTCAICallKit', '~> 2.7.0' # 基础UI组件源码 pod 'AUIFoundation', :path => "./AUIAICall/AUIBaseKits/AUIFoundation/", :modular_headers => true # AI通话场景UI组件源码 pod 'AUIAICall', :path => "./AUIAICall/" end
说明ARTC SDK版本请到SDK下载/集成最新适配版本号。
执行
pod install --repo-update
源码集成完成
工程配置
添加麦克风与摄像头权限,打开工程
info.Plist
,添加麦克风权限(NSMicrophoneUsageDescription)、摄像头权限(NSCameraUsageDescription) 和 相册权限(NSPhotoLibraryUsageDescription)。打开工程设置,在Signing & Capabilities中开启Background Modes,如果不开启后台模式,则需要自行处理在进入后台时结束通话。
源码配置
已完成前提条件所需步骤。
进入
AUIAICallAppServer.swift
文件,修改服务端域名。// AUIAICallAppServer.swift public let AICallServerDomain = "你的应用服务器域名"
说明如果您还未部署AppServer,您可以使用App端生成鉴权Token的方式,快速测试并跑通Demo。详细内容,请参见未部署AppServer。
调用API
上述工作完成后,接下来可以根据自身的业务场景和交互,在您的APP其他模块或主页上通过组件接口启动AI通话,也可以根据自身的需求修改源码。
// 引入组件
import AUIAICall
import ARTCAICallKit
import AUIFoundation
// 检查是否开启麦克风权限
AVDeviceAuth.checkMicAuth { auth in
if auth == false {
return
}
// userId推荐使用你的App登录后的用户id
let userId = "xxx"
// 通过userId构建controller
let controller = AUIAICallController(userId: userId)
// 设置智能体Id,不能为nil
controller.config.agentId = "xxx"
// 设置通话的类型(语音、数字人或视觉理解),需要与AgentId的类型对应
controller.config.agentType = agentType
// agent所在的区域,不能为nil
controller.config.region = "xx-xxx"
// 创建通话ViewController
let vc = AUIAICallViewController(controller)
// 全屏方式打开通话界面
vc.modalPresentationStyle = .fullScreen
vc.modalTransitionStyle = .coverVertical
vc.modalPresentationCapturesStatusBarAppearance = true
self.present(vc, animated: true)
}
常见问题
更多AUIKits问题咨询及使用说明,欢迎通过钉钉搜索群号106730016696,加入群聊联系我们。