日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

iOS使用指南

更新時(shí)間:

本文將介紹如何將AICallKit SDK集成到您的iOS應(yīng)用中

環(huán)境要求

  • Xcode 16.0 及以上版本,推薦使用最新正式版本

  • CocoaPods 1.9.3 及以上版本

  • 準(zhǔn)備 iOS 10.0 及以上版本的真機(jī)

集成SDK

target '你的Target' do

  # 依賴(lài)實(shí)時(shí)音視頻能力,引入AliVCSDK_ARTC或AliVCSDK_Standard或AliVCSDK_InteractiveLive
  pod 'AliVCSDK_ARTC', '~> x.x.x'
  # 引入AICallKit SDK
  pod 'ARTCAICallKit', '~> 1.5.0'

  ...

end
說(shuō)明

ARTC SDK版本請(qǐng)到官網(wǎng)獲取最新適配版本號(hào)。

工程配置

  • 添加麥克風(fēng)與攝像頭權(quán)限,打開(kāi)工程info.Plist,添加NSMicrophoneUsageDescription和NSCameraUsageDescription權(quán)限。

  • 打開(kāi)工程設(shè)置,在Signing & Capabilities中開(kāi)啟Background Modes,強(qiáng)烈推薦開(kāi)啟后臺(tái)模式,否則在進(jìn)入后臺(tái)后無(wú)法繼續(xù)通話(huà),這時(shí)候在您的APP中需要調(diào)用結(jié)束通話(huà)接口。

SDK使用示例

// 引入SDK
import ARTCAICallKit

// 創(chuàng)建engine實(shí)例
var engine: ARTCAICallEngineInterface = {
    return ARTCAICallEngineFactory.createEngine()
}()

// 設(shè)置回調(diào)
self.engine.delegate = self

// 啟動(dòng)智能體后,開(kāi)始通話(huà)
let agentInfo = ARTCAICallAgentInfo(agentType: workflow_type, channelId: channel_id, uid: ai_agent_user_id, instanceId: agent_instance_id)
self.engine.call(userId: self.userId, token: rtc_auth_token, agentInfo: agentInfo) { [weak self] error in
    if let error = error {
        // 處理錯(cuò)誤
    }
    else {
        // 成功通話(huà)
    }
}

// 結(jié)束通話(huà)
self.engine.handup()

// 其他功能調(diào)用示例,請(qǐng)參考API說(shuō)明

// 回調(diào)處理(僅示例不分核心的回調(diào)操作)
public func onErrorOccurs(code: ARTCAICallErrorCode) {
    // 發(fā)生了錯(cuò)誤
    self.engine.handup()
}

public func onCallBegin() {
    // 通話(huà)開(kāi)始
}

public func onCallEnd() {
    // 通話(huà)結(jié)束
}

public func onAgentStateChanged(state: ARTCAICallAgentState) {
    // 智能體狀態(tài)改變
}

public func onUserSubtitleNotify(text: String, isSentenceEnd: Bool, sentenceId: Int) {
    // 用戶(hù)提問(wèn)被智能體識(shí)別結(jié)果的通知
}

public func onVoiceAgentSubtitleNotify(text: String, isSentenceEnd: Bool, userAsrSentenceId: Int) {
    // 智能體回答結(jié)果通知
}

public func onVoiceIdChanged(voiceId: String) {
    // 當(dāng)前通話(huà)的音色發(fā)生了改變
}

public func onVoiceInterrupted(enable: Bool) {
    // 當(dāng)前通話(huà)的語(yǔ)音打斷是否啟用
}

API說(shuō)明

API概覽

類(lèi)/協(xié)議

API

說(shuō)明

ARTCAICallEngineInterface

引擎接口定義

userId

獲取當(dāng)前通話(huà)的UserId

isOnCall

是否通話(huà)中

agentInfo

獲取當(dāng)前智能體信息

agentState

獲取當(dāng)前智能體狀態(tài)

delegate

設(shè)置和獲取回調(diào)事件

call

開(kāi)始通話(huà)

handup

掛斷

setAgentView

設(shè)置智能體渲染視圖,及縮放模式

interruptSpeaking

打斷智能體講話(huà)

enableVoiceInterrupt

開(kāi)啟/關(guān)閉智能打斷

switchVoiceId

切換音色

enableSpeaker

開(kāi)啟/關(guān)閉揚(yáng)聲器

enablePushToTalk

開(kāi)啟/關(guān)閉對(duì)講機(jī)模式

startPushToTalk

對(duì)講機(jī)模式下,開(kāi)始講話(huà)

finishPushToTalk

對(duì)講機(jī)模式下,結(jié)束講話(huà)

cancelPushToTalk

對(duì)講機(jī)模式下,取消這次講話(huà)

muteMicrophone

靜音/取消禁音麥克風(fēng)

visionConfig

視覺(jué)理解通話(huà)參數(shù)配置

muteLocalCamera

關(guān)閉/取消關(guān)閉攝像頭。

switchCamera

切換前后攝像頭

parseShareAgentCall

解析一個(gè)分享的智能體信息

generateShareAgentCall

啟動(dòng)一個(gè)分享的智能體通話(huà)

getRTCInstance

獲取RTC引擎

destroy

釋放資源

ARTCAICallEngineDelegate

引擎回調(diào)事件

onErrorOccurs

發(fā)生了錯(cuò)誤

onCallBegin

通話(huà)開(kāi)始

onCallEnd

通話(huà)結(jié)束

onAgentVideoAvailable

智能體視頻是否可用

onAgentAudioAvailable

智能體音頻是否可用

onPushToTalk

當(dāng)前通話(huà)的對(duì)講機(jī)模式是否啟用

onAgentWillLeave

當(dāng)前智能體即將離開(kāi)(結(jié)束當(dāng)前通話(huà))

onReceivedAgentCustomMessage

收到當(dāng)前智能體發(fā)過(guò)來(lái)的自定義消息

onAgentStateChanged

智能體狀態(tài)改變

onNetworkStatusChanged

網(wǎng)絡(luò)狀態(tài)改變

onVoiceVolumeChanged

音量變化

onUserSubtitleNotify

用戶(hù)提問(wèn)被智能體識(shí)別結(jié)果的通知

onVoiceAgentSubtitleNotify

智能體回答結(jié)果通知

onVoiceIdChanged

當(dāng)前通話(huà)的音色發(fā)生了改變

onVoiceInterrupted

當(dāng)前通話(huà)的語(yǔ)音打斷是否啟用

onAgentAvatarFirstFrameDrawn

智能體數(shù)字人首幀渲染

onHumanTakeoverWillStart

當(dāng)真人即將接管當(dāng)前智能體

onHumanTakeoverConnected

當(dāng)真人接管已經(jīng)接通

ARTCAICallEngineFactory

引擎創(chuàng)建工廠(chǎng)

createEngine

創(chuàng)建默認(rèn)的引擎實(shí)例

ARTCAICallEngineInterface詳情

userId

獲取當(dāng)前通話(huà)的UserId

var userId: String? {get}

isOnCall

是否通話(huà)中, 從接通后到掛斷或出錯(cuò)前為true,其他為false

var isOnCall: Bool { get }

agentInfo

獲取當(dāng)前智能體信息,包括:類(lèi)型、頻道Id、智能體在頻道中的uid、智能體運(yùn)行實(shí)例ID

var agentInfo: ARTCAICallAgentInfo? { get }

agentState

獲取當(dāng)前智能體狀態(tài),包括:聆聽(tīng)中\(zhòng)思考中\(zhòng)講話(huà)中

var agentState: ARTCAICallAgentState { get }

delegate

設(shè)置和獲取回調(diào)事件

weak var delegate: ARTCAICallEngineDelegate? { get set }

call

開(kāi)始通話(huà)

func call(userId: String, token: String, agentInfo: ARTCAICallAgentInfo, completed:((_ error: NSError?) -> Void)?)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

userId

String

當(dāng)前用戶(hù)uid

token

String

入會(huì)Token

agentInfo

ARTCAICallAgentInfo

智能體信息

completed

((_ error: NSError?) -> Void)?

完成回調(diào)

handup

退出通話(huà)

 func handup(_ stopAIAgent: Bool)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

stopAIAgent

Bool

是否同事結(jié)束當(dāng)前智能體任務(wù)

setAgentView

設(shè)置智能體渲染視圖,及視圖模式

func setAgentView(view: UIView?, mode: ARTCAICallAgentViewMode)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

view

UIView?

數(shù)字人渲染視圖

mode

ARTCAICallAgentViewMode

視圖模式,可以是裁剪、縮放、填充等

interruptSpeaking

打斷智能體講話(huà)

func interruptSpeaking() -> Bool

enableVoiceInterrupt

開(kāi)啟/關(guān)閉智能打斷

func enableVoiceInterrupt(enable: Bool) -> Bool

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

enable

Bool

開(kāi)啟/關(guān)閉

switchVoiceId

切換音色

func switchVoiceId(voiceId: String) -> Bool

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

voiceId

String

音色id

enableSpeaker

開(kāi)啟/關(guān)閉揚(yáng)聲器

func enableSpeaker(enable: Bool) -> Bool

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

enable

Bool

開(kāi)啟/關(guān)閉

enablePushToTalk

開(kāi)啟/關(guān)閉對(duì)講機(jī)模式,對(duì)講機(jī)模式下,只有在finishPushToTalk被調(diào)用后,智能體才會(huì)播報(bào)結(jié)果

func enablePushToTalk(enable: Bool) -> Bool

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

enable

Bool

關(guān)閉或啟用

startPushToTalk

對(duì)講機(jī)模式下,開(kāi)始講話(huà)

func startPushToTalk() -> Bool

finishPushToTalk

對(duì)講機(jī)模式下,結(jié)束講話(huà)

func finishPushToTalk() -> Bool

cancelPushToTalk

對(duì)講機(jī)模式下,取消這次講話(huà)

func cancelPushToTalk() -> Bool

muteMicrophone

靜音/取消禁音麥克風(fēng)

func muteMicrophone(mute: Bool) -> Bool

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

mute

Bool

靜音/取消禁音

visionConfig

視覺(jué)配置,包括分辨率、幀率等,參考ARTCAICallVisionConfig的定義。使用視覺(jué)智能體時(shí)需要設(shè)置,且在通話(huà)前設(shè)置才能生效。

var visionConfig: ARTCAICallVisionConfig { set get }

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

stopAIAgent

Bool

是否同事結(jié)束當(dāng)前智能體任務(wù)

muteLocalCamera

關(guān)閉/取消關(guān)閉攝像頭。

func muteLocalCamera(mute: Bool) -> Bool

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

mute

Bool

關(guān)閉或啟用

switchCamera

切換前后攝像頭

func switchCamera() -> Bool

parseShareAgentCall

解析一個(gè)分享的智能體信息,解析成功則返回一個(gè)ARTCAICallAgentShareConfig類(lèi)型的實(shí)例,可以通過(guò)該實(shí)例啟動(dòng)一個(gè)分享出來(lái)的智能體通話(huà)

func parseShareAgentCall(shareInfo: String) -> ARTCAICallAgentShareConfig?

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

shareInfo

String

分享出來(lái)的智能體信息,可以在控制臺(tái)上生成

generateShareAgentCall

啟動(dòng)一個(gè)分享的智能體通話(huà)

func generateShareAgentCall(shareConfig: ARTCAICallAgentShareConfig, userId: String, completed: ((_ rsp: ARTCAICallAgentInfo?, _ token: String?, _ error: NSError?, _ reqId: String) -> Void)?)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

shareConfig

ARTCAICallAgentShareConfig

分享智能體配置信息,包括分享id、智能體類(lèi)型、過(guò)期時(shí)間、模板配置、區(qū)域等,可以到SDK查看定義

userId

String

當(dāng)前登錄的用戶(hù)Id

completed

((_ rsp: ARTCAICallAgentInfo?, _ token: String?, _ error: NSError?, _ reqId: String) -> Void)?

操作完成事件

getRTCInstance

獲取RTC引擎

func getRTCInstance() -> AnyObject?

destroy

釋放資源

func destroy()

ARTCAICallEngineDelegate詳情

onErrorOccurs

當(dāng)前通話(huà)時(shí)發(fā)生了錯(cuò)誤

@objc optional func onErrorOccurs(code: ARTCAICallErrorCode)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

code

ARTCAICallErrorCode

錯(cuò)誤類(lèi)型

onCallBegin

通話(huà)開(kāi)始

@objc optional func onCallBegin()

onCallEnd

通話(huà)結(jié)束

@objc optional func onCallEnd()

onAgentVideoAvailable

智能體視頻是否可用

@objc optional func onAgentVideoAvailable(available: Bool)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

available

Bool

是否可用

onAgentAudioAvailable

智能體音頻是否可用

@objc optional func onAgentAudioAvailable(available: Bool)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

available

Bool

是否可用

onPushToTalk

當(dāng)前通話(huà)的對(duì)講機(jī)模式是否啟用

@objc optional func onPushToTalk(enable: Bool)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

enable

Bool

是否啟用

onAgentWillLeave

當(dāng)前智能體即將離開(kāi)(結(jié)束當(dāng)前通話(huà))

@objc optional func onAgentWillLeave(reason: Int32, message: String)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

reason

Int32

離開(kāi)原因:2001(閑時(shí)退出) 0(其他)

message

String

離開(kāi)原因的描述

onReceivedAgentCustomMessage

收到當(dāng)前智能體發(fā)過(guò)來(lái)的自定義消息

@objc optional func onReceivedAgentCustomMessage(data: [String: Any]?)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

data

[String: Any]?

消息內(nèi)容

onAgentStateChanged

智能體狀態(tài)改變

@objc optional func onAgentStateChanged(state: ARTCAICallAgentState)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

state

ARTCAICallAgentState

當(dāng)前智能體狀態(tài):聆聽(tīng)中\(zhòng)思考中\(zhòng)講話(huà)中

onNetworkStatusChanged

網(wǎng)絡(luò)狀態(tài)改變

@objc optional func onNetworkStatusChanged(uid: String, quality: ARTCAICallNetworkQuality)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

uid

String

當(dāng)前講話(huà)人的Id

quality

ARTCAICallNetworkQuality

網(wǎng)絡(luò)質(zhì)量,包括:極好/好/有點(diǎn)差/差/極差/中斷/未知

onVoiceVolumeChanged

音量變化通知

@objc optional func onVoiceVolumeChanged(uid: String, volume: Int32)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

uid

String

當(dāng)前講話(huà)人的uid

volume

Int32

音量[0-255]

onUserSubtitleNotify

用戶(hù)提問(wèn)被智能體識(shí)別結(jié)果的通知

@objc optional func onUserSubtitleNotify(text: String, isSentenceEnd: Bool, sentenceId: Int)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

text

String

被智能體識(shí)別出的提問(wèn)文本

isSentenceEnd

Bool

當(dāng)前文本是否為這句話(huà)的最終結(jié)果

sentenceId

Int

當(dāng)前文本屬于的句子ID

onVoiceAgentSubtitleNotify

智能體回答結(jié)果通知

@objc optional func onVoiceAgentSubtitleNotify(text: String, isSentenceEnd: Bool, userAsrSentenceId: Int)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

text

String

智能體回答的文本

isSentenceEnd

Bool

當(dāng)前文本是否為此次回答的最后一句

userAsrSentenceId

Int

回答用戶(hù)問(wèn)題的句子ID

onVoiceIdChanged

當(dāng)前通話(huà)的音色發(fā)生了改變

@objc optional func onVoiceIdChanged(voiceId: String)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

voiceId

String

當(dāng)前音色I(xiàn)d

onVoiceInterrupted

當(dāng)前通話(huà)的語(yǔ)音打斷是否啟用

@objc optional func onVoiceInterrupted(enable: Bool)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

enable

Bool

是否啟用

onAgentAvatarFirstFrameDrawn

智能體數(shù)字人首幀渲染

@objc optional func onAgentAvatarFirstFrameDrawn()

onHumanTakeoverWillStart

當(dāng)真人即將接管當(dāng)前智能體

@objc optional func onHumanTakeoverWillStart(takeoverUid: String, takeoverMode: Int)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

takeoverUid

String

真人uid

takeoverMode

Int

1:表示使用真人音色輸出;0:表示使用智能體音色輸出

onHumanTakeoverConnected

當(dāng)真人接管已經(jīng)接通

@objc optional func onHumanTakeoverConnected(takeoverUid: String)

參數(shù)詳情:

參數(shù)

類(lèi)型

含義

takeoverUid

String

真人uid

ARTCAICallEngineFactory詳情

createEngine

創(chuàng)建默認(rèn)的引擎實(shí)例

public static func createEngine() -> ARTCAICallEngineInterface