API接口详情

通过阅读本文,您可以了解iOS SDK接口详情。

API概览

说明

旧版本SDK中存在弃用参数、方法,建议您将SDK升级到最新版本,请参见iOS使用指南

类/协议

API

说明

ARTCAICallEngineInterface

引擎接口定义

userId

获取当前通话的UserId

isOnCall

是否通话中

agentInfo

获取当前智能体信息

agentState

获取当前智能体状态

delegate

设置和获取回调事件

call[1/2]

开始通话

call[2/2]

通过通话配置来开始通话

handup

挂断

audioConfig

音频配置,包括编码配置(采样率、声道数、码率等)与场景配置(默认场景、音乐场景)

videoConfig

视频配置

setLocalViewConfig

设置本地摄像头渲染视图及配置

setAgentViewConfig

设置智能体渲染视图配置,当智能体有画面渲染时需要设置(当前仅针对AvararAgent/VideoAgent有效)

interruptSpeaking

打断智能体讲话

enableVoiceInterrupt

开启/关闭智能打断

switchVoiceId

切换音色

enableSpeaker

开启/关闭扬声器

enablePushToTalk

开启/关闭对讲机模式

startPushToTalk

对讲机模式下,开始讲话

finishPushToTalk

对讲机模式下,结束讲话

cancelPushToTalk

对讲机模式下,取消这次讲话

muteMicrophone

静音/取消禁音麦克风

muteAgentAudioPlaying

停止/恢复智能体音频流的播放

visionConfig

视觉理解通话参数配置

muteLocalCamera

关闭/取消关闭摄像头。

switchCamera

切换前后摄像头

parseShareAgentCall

解析一个分享的智能体信息

generateShareAgentCall

启动一个分享的智能体通话

getRTCInstance

获取RTC引擎

sendTextToAgent

给智能体发送文本消息

sendCustomMessageToServer

Server发送自定义消息,需要在接通后调用

updateLlmSystemPrompt

更新llm的系统提示词,需要在接通后调用

updateBailianAppParams

更新百炼应用中心参数

updateVcrConfig

更新VCR配置

startVisionCustomCapture

视觉理解智能体,开始启动自定义截帧,启动后,无法通过语音与智能体通话,需要在接通后调用

stopVisionCustomCapture

视觉理解智能体,结束自定义截帧,需要在接通后调用

destroy

释放资源

ARTCAICallEngineDelegate

引擎回调事件

onErrorOccurs

发生了错误

onAgentStarted

通话智能体已启动

onCallBegin

通话开始

onCallEnd

通话结束

onAgentVideoAvailable

智能体视频是否可用

onAgentAudioAvailable

智能体音频是否可用

onRTCEngineCreated

RTC引擎被成功创建

onPushToTalk

当前通话的对讲机模式是否启用

onAgentWillLeave

当前智能体即将离开(结束当前通话)

onReceivedAgentCustomMessage

收到当前智能体发过来的自定义消息

onAgentStateChanged

智能体状态改变

onNetworkStatusChanged

网络状态改变

onVoiceVolumeChanged

音量变化

onUserSubtitleNotify

用户提问被智能体识别结果的通知

onVoiceAgentSubtitleNotify

智能体回答结果通知

onLLMReplyCompleted

当前通话中,LLM回答完毕

onVoiceIdChanged

当前通话的音色发生了改变

onVoiceInterrupted

当前通话的语音打断是否启用

onSpeakingInterrupted

智能体当前讲话被打断(仅支持特定词打断回调)

onVisionCustomCapture

当前视觉理解通话是否启用了自定义截帧模式

onAgentAvatarFirstFrameDrawn

智能体数字人首帧渲染

onHumanTakeoverWillStart

当真人即将接管当前智能体

onHumanTakeoverConnected

当真人接管已经接通

onAgentEmotionNotify

智能体情绪结果通知

onAgentDataChannelAvailable

智能体消息通道可用性回调

onReceivedAgentVcrResult

收到当前智能体发过来VCR结果

ARTCAICallEngineFactory

引擎创建工厂

createEngine

创建默认的引擎实例

API详情

ARTCAICallEngineInterface详情

userId

获取当前通话的UserId

var userId: String? {get}

isOnCall

是否通话中, 从接通后到挂断或出错前为true,其他为false

var isOnCall: Bool { get }

agentInfo

获取当前智能体信息,包括:类型、频道Id、智能体在频道中的uid、智能体运行实例ID,详细内容,请参见ARTCAICallAgentInfo

var agentInfo: ARTCAICallAgentInfo? { get }

agentState

获取当前智能体状态,包括:聆听中\思考中\讲话中。详细内容,请参见ARTCAICallAgentState

var agentState: ARTCAICallAgentState { get }

delegate

设置和获取回调事件。更多回调事件,请参见ARTCAICallEngineDelegate

weak var delegate: ARTCAICallEngineDelegate? { get set }

call[1/2]

开始通话

说明

该接口是由服务端呼叫智能体,端侧所调用接口。如何通过服务端发起智能体通话,请参见如何通过服务端接口发起智能体通话

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

参数详情:

参数

类型

含义

userId

String

当前用户uid

token

String

入会Token

agentInfo

ARTCAICallAgentInfo

智能体信息

completed

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

完成回调

call[2/2]

通过通话配置来开始通话

说明

该接口是由客户端呼叫智能体所调用接口,目前默认为该呼叫方案。详细内容,请参见iOS使用指南

func call(config: ARTCAICallConfig) -> Bool

参数详情:

参数

类型

含义

config

ARTCAICallConfig

通话配置

handup

退出通话

 func handup(_ stopAIAgent: Bool)

参数详情:

参数

类型

含义

stopAIAgent

Bool

是否同时结束当前智能体任务

audioConfig

音频配置,包括编码配置(采样率、声道数、码率等)与场景配置(默认场景、音乐场景)。详细内容,请参见ARTCAICallAudioConfig,该参数在通话前设置才能生效。

var audioConfig: ARTCAICallAudioConfig { set get }

videoConfig

视频配置,在通话前设置才能生效(仅针对VisionAgent/VideoAgent有效),详细内容请参见ARTCAICallVideoConfig

var videoConfig: ARTCAICallVideoConfig { set get }

setLocalViewConfig

设置本地摄像头渲染视图及配置(当前仅针对VisionAgent/VideoAgent有效),详细内容请参见ARTCAICallViewConfig

func setLocalViewConfig(viewConfig: ARTCAICallViewConfig?)

参数详情:

参数

类型

含义

viewConfig

ARTCAICallViewConfig

视图配置,为空时表示不需要渲染视图

setAgentViewConfig

设置智能体渲染视图配置,当智能体有画面渲染时需要设置(当前仅针对VisionAgent/VideoAgent有效),详细内容请参见ARTCAICallViewConfig

func setAgentViewConfig(viewConfig: ARTCAICallViewConfig?)

参数详情:

参数

类型

含义

viewConfig

ARTCAICallViewConfig?

渲染视图配置,包括渲染视图、渲染模式、镜像模式、旋转模式等

interruptSpeaking

打断智能体讲话

func interruptSpeaking() -> Bool

enableVoiceInterrupt

开启/关闭智能打断

func enableVoiceInterrupt(enable: Bool) -> Bool

参数详情:

参数

类型

含义

enable

Bool

开启/关闭

switchVoiceId

切换音色

func switchVoiceId(voiceId: String) -> Bool

参数详情:

参数

类型

含义

voiceId

String

音色id

enableSpeaker

开启/关闭扬声器

func enableSpeaker(enable: Bool) -> Bool

参数详情:

参数

类型

含义

enable

Bool

开启/关闭

enablePushToTalk

开启/关闭对讲机模式,对讲机模式下,只有在finishPushToTalk被调用后,智能体才会播报结果

func enablePushToTalk(enable: Bool) -> Bool

参数详情:

参数

类型

含义

enable

Bool

关闭或启用

startPushToTalk

对讲机模式下,开始讲话

func startPushToTalk() -> Bool

finishPushToTalk

对讲机模式下,结束讲话

func finishPushToTalk() -> Bool

cancelPushToTalk

对讲机模式下,取消这次讲话

func cancelPushToTalk() -> Bool

muteMicrophone

静音/取消禁音麦克风

func muteMicrophone(mute: Bool) -> Bool

参数详情:

参数

类型

含义

mute

Bool

静音/取消禁音

muteAgentAudioPlaying

停止/恢复智能体音频流的播放

func muteAgentAudioPlaying(mute: Bool) -> Bool

参数详情:

参数

类型

含义

mute

Bool

是否静音

visionConfig

使用视觉智能体时需要设置,且在通话前设置才能生效。视觉配置,包括分辨率、帧率等。详细内容,请参见ARTCAICallVisionConfig

var visionConfig: ARTCAICallVisionConfig { set get }

muteLocalCamera

关闭/取消关闭摄像头。

func muteLocalCamera(mute: Bool) -> Bool

参数详情:

参数

类型

含义

mute

Bool

关闭或启用

switchCamera

切换前后摄像头

func switchCamera() -> Bool

parseShareAgentCall

解析一个分享的智能体信息,解析成功则返回一个ARTCAICallAgentShareConfig类型的实例,可以通过该实例启动一个分享出来的智能体通话

func parseShareAgentCall(shareInfo: String) -> ARTCAICallAgentShareConfig?

参数详情:

参数

类型

含义

shareInfo

String

分享出来的智能体信息,可以在控制台上生成

generateShareAgentCall

启动一个分享的智能体通话

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

参数详情:

参数

类型

含义

shareConfig

ARTCAICallAgentShareConfig

分享智能体配置信息,包括分享id、智能体类型、过期时间、模板配置、区域等,可以到SDK查看定义

userId

String

当前登录的用户Id

completed

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

操作完成事件

getRTCInstance

获取RTC引擎

func getRTCInstance() -> AnyObject?

sendTextToAgent

给智能体发送文本消息

func sendTextToAgent(req: ARTCAICallSendTextToAgentRequest) -> Bool

参数详情:

参数

类型

含义

req

ARTCAICallSendTextToAgentRequest

发送的消息结构体

sendCustomMessageToServer

Server发送自定义消息,需要在接通后调用

func sendCustomMessageToServer(msg: String) -> Bool

参数详情:

参数

类型

含义

msg

String

发送内容

updateLlmSystemPrompt

更新LLM的系统提示词,需要在接通后调用。

func updateLlmSystemPrompt(prompt: String) -> Bool

参数详情:

参数

类型

含义

prompt

String

提示词

updateBailianAppParams

更新百炼应用中心参数

func updateBailianAppParams(params: [String: Any]) -> Bool

参数详情:

参数

类型

含义

params

String

百炼应用中心参数

updateVcrConfig

更新VCR配置

 func updateVcrConfig(vcrConfig: ARTCAICallAgentVcrConfig) -> Bool

参数详情:

参数

类型

含义

vcrConfig

ARTCAICallAgentVcrConfig

vcr配置

startVisionCustomCapture

视觉理解智能体,开始启动自定义截帧,启动后,无法通过语音与智能体通话,需要在接通后调用

func startVisionCustomCapture(req: ARTCAICallVisionCustomCaptureRequest) -> Bool

参数详情:

参数

类型

含义

req

ARTCAICallVisionCustomCaptureRequest

配置信息

stopVisionCustomCapture

视觉理解智能体,结束自定义截帧,需要在接通后调用

func stopVisionCustomCapture() -> Bool

destroy

释放资源

func destroy()

ARTCAICallEngineDelegate详情

onErrorOccurs

当前通话时发生了错误

@objc optional func onErrorOccurs(code: ARTCAICallErrorCode)

参数详情:

参数

类型

含义

code

ARTCAICallErrorCode

错误类型

onAgentStarted

通话智能体已启动

@objc optional func onAgentStarted()

onCallBegin

通话开始

@objc optional func onCallBegin()

onCallEnd

通话结束

@objc optional func onCallEnd()

onAgentVideoAvailable

智能体视频是否可用

@objc optional func onAgentVideoAvailable(available: Bool)

参数详情:

参数

类型

含义

available

Bool

是否可用

onAgentAudioAvailable

智能体音频是否可用

@objc optional func onAgentAudioAvailable(available: Bool)

参数详情:

参数

类型

含义

available

Bool

是否可用

onRTCEngineCreated

RTC引擎被成功创建,可以在这个回调里调用getRTCInstance获取到rtc引擎实例

@objc optional func onRTCEngineCreated()

onPushToTalk

当前通话的对讲机模式是否启用

@objc optional func onPushToTalk(enable: Bool)

参数详情:

参数

类型

含义

enable

Bool

是否启用

onAgentWillLeave

当前智能体即将离开(结束当前通话)

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

参数详情:

参数

类型

含义

reason

Int32

离开原因:2001(闲时退出) 0(其他)

message

String

离开原因的描述

onReceivedAgentCustomMessage

收到当前智能体发过来的自定义消息

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

参数详情:

参数

类型

含义

data

[String: Any]?

消息内容

onAgentStateChanged

智能体状态改变

@objc optional func onAgentStateChanged(state: ARTCAICallAgentState)

参数详情:

参数

类型

含义

state

ARTCAICallAgentState

当前智能体状态:聆听中\思考中\讲话中

onNetworkStatusChanged

网络状态改变

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

参数详情:

参数

类型

含义

uid

String

当前讲话人的Id

quality

ARTCAICallNetworkQuality

网络质量,包括:极好/好/有点差/差/极差/中断/未知

onVoiceVolumeChanged

音量变化通知

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

参数详情:

参数

类型

含义

uid

String

当前讲话人的uid

volume

Int32

音量[0-255]

onUserSubtitleNotify

用户提问被智能体识别结果的通知

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

参数详情:

参数

类型

含义

text

String

被智能体识别出的提问文本

isSentenceEnd

Bool

当前文本是否为这句话的最终结果

sentenceId

Int

当前文本属于的句子ID

onVoiceAgentSubtitleNotify

智能体回答结果通知

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

参数详情:

参数

类型

含义

text

String

智能体回答的文本

isSentenceEnd

Bool

当前文本是否为此次回答的最后一句

userAsrSentenceId

Int

回答用户问题的句子ID

onLLMReplyCompleted

当前通话中,LLM回答完毕

@objc optional func onLLMReplyCompleted(text: String, userAsrSentenceId: Int)

参数详情:

参数

类型

含义

text

String

LLM输出的文本

userAsrSentenceId

Int

回答用户问题的句子ID

onVoiceIdChanged

当前通话的音色发生了改变

@objc optional func onVoiceIdChanged(voiceId: String)

参数详情:

参数

类型

含义

voiceId

String

当前音色Id

onVoiceInterrupted

当前通话的语音打断是否启用

@objc optional func onVoiceInterrupted(enable: Bool)

参数详情:

参数

类型

含义

enable

Bool

是否启用

onSpeakingInterrupted

智能体当前讲话被打断

@objc optional func onSpeakingInterrupted(reason: ARTCAICallSpeakingInterruptedReason)

参数详情:

参数

类型

含义

reason

ARTCAICallSpeakingInterruptedReason

原因,例如:特定词打断

onVisionCustomCapture

当前视觉理解通话是否启用了自定义截帧模式

@objc optional func onVisionCustomCapture(enable: Bool)

参数详情:

参数

类型

含义

enable

Bool

是否启用

onAgentAvatarFirstFrameDrawn

智能体数字人首帧渲染

@objc optional func onAgentAvatarFirstFrameDrawn()

onHumanTakeoverWillStart

当真人即将接管当前智能体

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

参数详情:

参数

类型

含义

takeoverUid

String

真人uid

takeoverMode

Int

1:表示使用真人音色输出;0:表示使用智能体音色输出

onHumanTakeoverConnected

当真人接管已经接通

@objc optional func onHumanTakeoverConnected(takeoverUid: String)

参数详情:

参数

类型

含义

takeoverUid

String

真人uid

onAgentEmotionNotify

智能体情绪结果通知

@objc optional func onAgentEmotionNotify(emotion: String, userAsrSentenceId: Int)

参数详情:

参数

类型

含义

emotion

String

情绪标签,例如:neutral\happy\angry\sad 等

userAsrSentenceId

Int

回答用户问题的句子ID

onAgentDataChannelAvailable

智能体消息通道可用性回调,该回调触发后,才可以给智能体发送消息

@objc optional func onAgentDataChannelAvailable()

onReceivedAgentVcrResult

收到当前智能体发过来VCR结果。详情,请参见ARTCAICallAgentVcrResult

@objc optional func onReceivedAgentVcrResult(result: ARTCAICallAgentVcrResult)

ARTCAICallEngineFactory详情

createEngine

创建默认的引擎实例

public static func createEngine() -> ARTCAICallEngineInterface