全部產品
Search
文件中心

Intelligent Media Services:iOS使用指南

更新時間:Mar 10, 2026

通過閱讀本文,您可以瞭解如何在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

  1. 源碼下載後,進入Example目錄。

  2. 在Example目錄裡執行命令pod install --repo-update,自動安裝依賴SDK。

  3. 開啟工程檔案AUIAICallExample.xcworkspace,修改包ID。

  4. 開啟智能體情境設定檔/Resources/AUIAIMain.bundle/agent_scenes.json,根據智能體類型,填寫智能體Id及所在的地區。例如:配置語音智能體時,找到agent_typeVoiceAgent的Scenes節點,填寫agent_idregion的欄位值。

    // 下面樣本如何配置語音通話智能體
        {
          "agent_type": "VoiceAgent",
          "scenes": [
            {
              "agent_id": "<語音通話智能體Id>",
              "region": "<語音通話智能體Id所在的地區>",
              "title": "語音通話",
              "tags": [],
              "limit_seconds": 1800,
              "description": "",
              "asr_model_id": "xxx",
              "tts_model_id": "xxx",
              "voice_styles": []
            }
          ]
        }
    說明

    只體驗一種智能體時,只需要設定該智能體類型的agent_idregion欄位值即可。region 值請參考下表的 Region ID 列。

    地區名稱

    Region Id

    華東1(杭州)

    cn-hangzhou

    華東2(上海)

    cn-shanghai

    華北2(北京)

    cn-beijing

    華南1(深圳)

    cn-shenzhen

    新加坡

    ap-southeast-1

  5. 完成智能體配置後,您可以通過以下兩種方式來啟動智能體:

    • 已部署AppServer: 如果你已經在您的服務端上部署了阿里雲提供的AppServer源碼,您還需要進入檔案AUIAICallAppServer.swift,修改服務端網域名稱。

      // AUIAICallAppServer.swift
      public let AICallServerDomain = "你的應用伺服器網域名稱"
    • 未部署AppServer:如果您還未部署AppServer源碼,需要快速跑通Demo並體驗智能體。那麼您需要進入檔案AUIAICallAuthTokenHelper.swift,配置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步驟如下:

      1. 前往智能媒體控制台,單擊您建立好的智能體,進入智能體詳情頁面。

        image

      2. 單擊RTC AppID,前往ApsaraVideo for Live控制台,擷取AppId和AppKey。

        image

  6. 選擇"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
        pod 'AliVCSDK_ARTC', '~> x.x.x'
    
        # AI即時互動通話情境SDK
        pod 'ARTCAICallKit', '~> x.x.x'
    
        # 基礎UI組件源碼
        pod 'AUIFoundation', :path => "./AUIAICall/AUIBaseKits/AUIFoundation/", :modular_headers => true
    
        # AI通話情境UI組件源碼
        pod 'AUIAICall',  :path => "./AUIAICall/"
    end
    說明
    • ARTC SDK最新版本:7.10.0

    • AICallKit SDK最新版本:2.11.0

  • 執行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)
  }