API接口详情

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

API概览

说明

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

类/协议

API

说明

ARTCAICallEngine

音视频通话引擎接口定义

init

初始化

setAICallAgentType

设置智能体类型

call[1/2]

创建&开始通话

call[2/2]

通过端侧呼叫接口发起智能体通话

handup

挂断

switchMicrophone

切换麦克风状态

interruptSpeaking

打断机器人说话

enableVoiceInterrupt

开启/关闭智能打断

enableSpeaker

扬声器/听筒切换

muteAgentAudioPlaying

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

enablePushToTalk

开启/关闭对讲机模式

isPushToTalkEnable

对讲机模式是否开启

startPushToTalk

对讲机模式:开始讲话

finishPushToTalk

对讲机模式:结束讲话

cancelPushToTalk

对讲机模式:取消这次通话

switchRobotVoice

切换音色

getRobotVoiceId

获取正在使用的音色

setEngineCallback

注册回调

isMicrophoneOn

是否关闭麦克风

isSpeakerOn

是否是扬声器播放

isVoiceInterruptEnable

智能打断是否开启

setAvatarAgentView(弃用)

设置数字人视图载体并指定渲染模式

setVisionPreviewView(弃用)

设置视觉理解本地视图载体并指定渲染模式

muteLocalCamera

关闭/取消关闭摄像头

isLocalCameraMute

摄像头是否关闭

switchCamera

切换前后摄像头

getRtcEngine

获取RTC引擎实例

getIARTCAICallService

获取官方协议实现

sendTextToAgent

发送自定义消息给LLM

sendCustomMessageToServer

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

updateLlmSystemPrompt

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

updateBailianAppParams

更新百炼应用中心参数

updateVcrConfig

更新VCR配置

startVisionCustomCapture

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

stopVisionCustomCapture

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

setAgentView[1/2]

设置智能体视频视图载体

setAgentView[2/2]

设置智能体视频视图载体并指定渲染模式

setLocalView[1/2]

设置本地预览视图控件

setLocalView[2/2]

设置本地预览视图控件并指定渲染模式

IARTCAICallEngineCallback

引擎回调事件

onErrorOccurs

发生了错误

onAgentStarted

智能体启动成功

onCallBegin

通话开始

onCallEnd

通话结束

onAliRtcEngineCreated

底层AliRtcEngine引擎创建完成

onAICallEngineRobotStateChanged

机器人状态同步

onUserSpeaking

用户说话回调

onUserAsrSubtitleNotify

同步ASR识别用户的话

onAIAgentSubtitleNotify

同步智能体回应的话

onLLMReplyCompleted

当前通话中,LLM回答完毕

onNetworkStatusChanged

网络状态回调

onVoiceVolumeChanged

音量变化

onVoiceIdChanged

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

onVoiceInterrupted

当前通话的语音打断设置改变

onAgentVideoAvailable

智能体视频是否可用(推流)

onAgentAudioAvailable

智能体音频是否可用(推流)

onAudioDelayInfo

音频回环延迟

onAgentAvatarFirstFrameDrawn

数字人首视频帧渲染

onUserOnLine

用户上线回调

onSpeakingInterrupted

智能体当前讲话被打断

onVisionCustomCapture

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

onAgentWillLeave

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

onHumanTakeoverWillStart

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

onHumanTakeoverConnected

当真人接管已经接通

onReceivedAgentCustomMessage

智能体自定义消息

onAgentEmotionNotify

智能体情绪结果通知

onAgentDataChannelAvailable

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

onReceivedAgentVcrResult

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

API详情

ARTCAICallEngine详情

init

初始化

/**
 * 初始化
 * @param config 初始化配置
 */
public abstract void init(ARTCAICallConfig config);

参数详情:

参数

类型

含义

config

ARTCAICallConfig

初始化配置

setAICallAgentType

设置智能体类型

/**
 * 设置智能体类型
 * @param aiAgentType
 */
public abstract void setAICallAgentType(ARTCAICallAgentType aiAgentType);

参数详情:

参数

类型

含义

aiAgentType

ARTCAICallAgentType

设置智能体类型

call[1/2]

创建&开始通话

说明

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

/**
 * 创建&开始通话
 */
public abstract void call(String rtcToken, String aiAgentInstanceId, String aiAgentUserId, String channelId);

参数详情:

参数

类型

含义

rtcToken

String

入会Token,不可为空

aiAgentInstanceId

String

实例ID,不可为空

aiAgentUserId

String

智能体用户ID,不可为空

channelId

String

房间ID, 不可为空

call[2/2]

开始呼叫智能体通话, 此接口是SDK接口呼叫智能体接口,需要传入RTC 的入房Token作为鉴权token,并在 ARTCAICallConfig 中设置mAiCallAgentTemplateConfig相关的智能体ID、智能体区域及相关启动参数。

说明

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

/**
   * 开始呼叫智能体通话
   * @param rtcToken 本端用户加入到RTC房间的鉴权Token
   * @detail 此接口使用SDK的接口呼叫智能体,需要传入RTC 的入房Token,并在 ARTCAICallConfig 中
   * 设置mAiCallAgentTemplateConfig相关的智能体ID、智能体区域及相关启动参数
   */
public abstract void call(String rtcToken);

参数详情:

参数

类型

含义

rtcToken

String

入会Token

handup

挂断

/**
 * 挂断
 */
public abstract void handup();

switchMicrophone

切换麦克风状态

/**
 * 切换麦克风状态
 * @param on
 */
public abstract void switchMicrophone(boolean on);

参数详情:

参数

类型

含义

on

boolean

是否静音

interruptSpeaking

打断机器人说话

/**
 * 打断机器人说话
 */
public abstract boolean interruptSpeaking();

enableVoiceInterrupt

开启/关闭智能打断

/**
 * 开启/关闭智能打断
 */
public abstract boolean enableVoiceInterrupt(boolean enable);

参数详情:

参数

类型

含义

enable

boolean

开启/关闭智能打断

enableSpeaker

扬声器/听筒切换。true: 扬声器播放,false: 听筒播放

/**
 * 扬声器/听筒切换
 */
public abstract boolean enableSpeaker(boolean enable);

参数详情:

参数

类型

含义

enable

boolean

扬声器与听筒开启切换。true: 扬声器播放,false: 听筒播放

muteAgentAudioPlaying

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

public abstract boolean muteAgentAudioPlaying(boolean mute);

参数详情:

参数

类型

含义

mute

Bool

是否静音

enablePushToTalk

开启/关闭对讲机模式

/**
 * 开启/关闭对讲机模式,对讲机模式下,只有在finishPushToTalk被调用后,智能体才会播报结果
 * @param enable
 * @return
 */
public abstract boolean enablePushToTalk(boolean enable);

参数详情:

参数

类型

含义

enable

boolean

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

isPushToTalkEnable

对讲机模式是否开启

/**
 * 对讲机模式是否开启
 * @return
 */
public abstract boolean isPushToTalkEnable();

startPushToTalk

对讲机模式:开始讲话

/**
 * 对讲机模式:开始讲话
 * @return
 */
public abstract boolean startPushToTalk();

finishPushToTalk

对讲机模式:结束讲话

/**
 * 对讲机模式:结束讲话
 * @return
 */
public abstract boolean finishPushToTalk();

cancelPushToTalk

对讲机模式:取消这次通话

/**
 * 对讲机模式:取消这次通话
 * @return
 */
public abstract boolean cancelPushToTalk();

switchRobotVoice

切换音色

/**
 * 切换音色
 */
public abstract boolean switchRobotVoice(String voiceId);

参数详情:

参数

类型

含义

voiceId

String

切换音色

getRobotVoiceId

获取正在使用的音色

/**
 * 获取正在使用的音色
 * @return
 */
public abstract String getRobotVoiceId();

setEngineCallback

注册回调

/**
 * 注册回调
 * @param engineCallback
 */
public abstract void setEngineCallback(IARTCAICallEngineCallback engineCallback);

参数详情:

参数

类型

含义

engineCallback

IARTCAICallEngineCallback

注册回调

isMicrophoneOn

是否关闭麦克风

/**
 * 是否关闭麦克风
 * @return
 */
public abstract boolean isMicrophoneOn();

isSpeakerOn

是否是扬声器播放,true: 扬声器播放,false: 听筒播放。

/**
 * 是否是扬声器播放
 * @return
 */
public abstract boolean isSpeakerOn();

isVoiceInterruptEnable

智能打断是否开启

/**
 * 智能打断是否开启
 * @return
 */
public abstract boolean isVoiceInterruptEnable();

setAvatarAgentView(弃用)

设置数字人视图载体并指定渲染模式

重要

该方法在2.5以上版本中弃用,请使用setAgentView[1/2]setAgentView[2/2]方法。

public abstract void setAvatarAgentView(ViewGroup viewGroup, ViewGroup.LayoutParams avatarLayoutParams, ARTCAICallVideoCanvas canvas);

参数详情:

参数

类型

含义

viewGroup

ViewGroup

数字人渲染视图

avatarLayoutParams

ViewGroup.LayoutParams

布局参数

canvas

ARTCAICallVideoCanvas

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

setVisionPreviewView(弃用)

设置视觉理解本地视图载体并指定渲染模式

重要

该方法在2.5以上版本中弃用,请使用setLocalView[1/2]setLocalView[2/2]方法。

public abstract void setVisionPreviewView(ViewGroup viewGroup, ViewGroup.LayoutParams visionLayoutParams, ARTCAICallVideoCanvas canvas);

参数详情:

参数

类型

含义

viewGroup

ViewGroup

本地渲染视图

avatarLayoutParams

ViewGroup.LayoutParams

布局参数

canvas

ARTCAICallVideoCanvas

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

muteLocalCamera

关闭/取消关闭摄像头

/**
 * 关闭/取消关闭摄像头
 */
public abstract boolean muteLocalCamera(boolean mute);

参数详情:

参数

类型

含义

mute

boolean

打开/关闭摄像头

isLocalCameraMute

摄像头是否关闭

/**
 * 摄像头是否关闭
 * @return
 */
public abstract boolean isLocalCameraMute();

switchCamera

切换前后摄像头

/**
 * 切换前后摄像头
 */
public abstract boolean switchCamera();

getRtcEngine

获取RTC引擎实例

/**
 * 获取rtc引擎实例
 * @return
 */
public abstract AliRtcEngine getRtcEngine();

getIARTCAICallService

获取官方协议实现

/**
 * 获取官方协议实现
 * @return
 */
public abstract IARTCAICallService getIARTCAICallService();

sendTextToAgent

发送自定义消息给LLM

/**
 * 发送自定义消息给LLM
 * @param req
*/
public  boolean sendTextToAgent(ARTCAICallSendTextToAgentRequest req);

参数详情:

参数

类型

含义

req

ARTCAICallSendTextToAgentRequest

发送的消息结构体

sendCustomMessageToServer

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

/**
 * 发送自定义消息给AppServer
 * 复用智能体消息通道,向AppServer发送消息, 需要AppServer监听回调拿到自定义的消息
 * @param msg
 * @return true: 发送成功;false: 发送失败
*/
public boolean sendCustomMessageToServer(String msg);

参数详情:

参数

类型

含义

msg

String

发送内容

updateLlmSystemPrompt

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

/**
 * 更新llm的系统提示词,例如:“你是一位友好且乐于助人的助手,专注于为用户提供准确的信息和建议。”
 * @param prompt
 * @return true: 更新成功;false: 更新失败
*/
public boolean updateLlmSystemPrompt(String prompt)

参数详情:

参数

类型

含义

prompt

String

提示词

updateBailianAppParams

更新百炼应用中心参数

public abstract boolean updateBailianAppParams(String params);

参数详情:

参数

类型

含义

params

String

百炼应用中心参数

updateVcrConfig

更新VCR配置

 public abstract boolean updateVcrConfig(ARTCAICallAgentVcrConfig config);

参数详情:

参数

类型

含义

config

ARTCAICallAgentVcrConfig

VCR配置

startVisionCustomCapture

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

/**
 * Vision智能体,开始启动自定义截帧,启动后,无法通过语音与智能体通话
 * @param request 请求参数
 * @return true: 发送成功;false: 发送失败
*/
public  boolean startVisionCustomCapture(ARTCAICallVisionCustomCaptureRequest request);

参数详情:

参数

类型

含义

req

ARTCAICallVisionCustomCaptureRequest

配置信息

stopVisionCustomCapture

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

public  boolean stopVisionCustomCapture();

setAgentView[1/2]

设置智能体视频视图载体

    public abstract void setAgentView(ViewGroup viewGroup, ViewGroup.LayoutParams agentLayoutParams);

参数详情:

参数

类型

含义

viewGroup

ViewGroup

数字人渲染视图

avatarLayoutParams

ViewGroup.LayoutParams

布局参数

setAgentView[2/2]

设置智能体视频视图载体并指定渲染模式

    public abstract void setAgentView(ViewGroup viewGroup, ViewGroup.LayoutParams agentLayoutParams, ARTCAICallVideoCanvas canvas);

参数详情:

参数

类型

含义

viewGroup

ViewGroup

数字人渲染视图

agentLayoutParams

ViewGroup.LayoutParams

布局参数

canvas

ARTCAICallVideoCanvas

渲染视图配置,包括渲染视图、渲染模

setLocalView[1/2]

设置本地预览视图控件

public abstract void setLocalView(ViewGroup viewGroup, ViewGroup.LayoutParams localLayoutParams);

参数详情:

参数

类型

含义

viewGroup

ViewGroup

本地采集视图

localLayoutParams

ViewGroup.LayoutParams

布局参数

setLocalView[2/2]

设置本地预览视图控件并指定渲染模式

public abstract void setLocalView(ViewGroup viewGroup, ViewGroup.LayoutParams localLayoutParams, ARTCAICallVideoCanvas canvas);

参数详情:

参数

类型

含义

viewGroup

ViewGroup

本地采集视图

localLayoutParams

ViewGroup.LayoutParams

布局参数

canvas

ARTCAICallVideoCanvas

渲染视图配置,包括渲染视图、渲染模

IARTCAICallEngineCallback详情

onErrorOccurs

发生了错误

/**
 * 发生了错误
 * @param errorCode 错误码
 */
void onErrorOccurs(AICallErrorCode errorCode);

参数详情:

参数

类型

含义

errorCode

AICallErrorCode

发生了错误

onAgentStarted

智能体启动成功,如果使用端侧call[2/2]接口呼叫智能体,呼叫成功会收到该回调。

/**
 * 智能体启动成功
 */     
public void onAgentStarted() {}

onCallBegin

通话开始(入会)

/**
 * 通话开始(入会)
 */
void onCallBegin();

onCallEnd

通话结束(离会)

/**
 * 通话结束(离会)
 */
void onCallEnd();

onAliRtcEngineCreated

底层AliRtcEngine引擎创建完成

 public void onAliRtcEngineCreated(AliRtcEngine engine)

参数详情:

参数

类型

含义

engine

AliRtcEngine

底层AliRtcEngine引擎对象,适用于AICallKIt SDK接口满足不了需求,需要使用ARTC SDK原子接口的场景

onAICallEngineRobotStateChanged

机器人状态同步

/**
 * 机器人状态同步
 * @param oldRobotState
 * @param newRobotState
 */
void onAICallEngineRobotStateChanged(ARTCAICallRobotState oldRobotState, ARTCAICallRobotState newRobotState);

参数详情:

参数

类型

含义

oldRobotState

ARTCAICallRobotState

之前的状态

newRobotState

ARTCAICallRobotState

新的状态

onUserSpeaking

用户说话回调

/**
 * 用户说话回调
 * @param isSpeaking 是否在说话
 */
void onUserSpeaking(boolean isSpeaking);

参数详情:

参数

类型

含义

isSpeaking

boolean

用户正在说话回调

onUserAsrSubtitleNotify

同步ASR识别用户的话

/**
 * 同步ASR识别用户的话
 * @param text ASR识别出的具体文本
 * @param isSentenceEnd 当前文本是否为这句话的最终结果
 * @param sentenceId 当前文本属于的句子ID
 * @param voicePrintStatusCode 声纹识别状态
 */
void  void onUserAsrSubtitleNotify(String text, boolean isSentenceEnd, int sentenceId, VoicePrintStatusCode voicePrintStatusCode);

参数详情:

参数

类型

含义

text

String

ASR识别出的具体文本

isSentenceEnd

boolean

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

sentenceId

int

句子ID

voicePrintStatusCode

VoicePrintStatusCode

声纹识别状态

onAIAgentSubtitleNotify

同步智能体回应的话

/**
 * 同步智能体回应的话
 * @param text 智能体的话
 * @param end 当前回复是否结束
 * @param userAsrSentenceId 表示回应对应sentenceId语音输入的llm内容
 */
void onAIAgentSubtitleNotify(String text, boolean end, int userAsrSentenceId);

参数详情:

参数

类型

含义

text

String

智能体的回答

end

boolean

当前回复是否结束

userAsrSentenceId

int

回应对应sentenceId语音输入的llm内容

onLLMReplyCompleted

当前通话中,LLM回答完毕

/**
 * 当前通话中,LLM回答完毕
 * @param text LLM输出的文本
 * @param userAsrSentenceId 回答用户问题的句子ID
 * @note 该回调是LLM针对某个提问的全部内容回答,不会根据智能体语音播报同步回调;如果是实时字幕需求,使用onAIAgentSubtitleNotify
 */
public void onLLMReplyCompleted(String text, int userAsrSentenceId) {}

参数详情:

参数

类型

含义

text

String

LLM输出的文本

userAsrSentenceId

Int

回答用户问题的句子ID

onNetworkStatusChanged

网络状态回调

/**
 * 网络状态回调
 * @param uid 入会用户id
 * @param quality 网络状态
 */
void onNetworkStatusChanged(String uid, ARTCAICallNetworkQuality quality);

参数详情:

参数

类型

含义

uid

String

用户UserId

quality

ARTCAICallNetworkQuality

网络状态

onVoiceVolumeChanged

音量变化

/**
 * 音量变化
 * @param uid 用户id
 * @param volume 音量[0-255]
 */
void onVoiceVolumeChanged(String uid, int volume);

参数详情:

参数

类型

含义

uid

String

用户UserId

volume

int

音量 [0-255]

onVoiceIdChanged

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

/**
 * 当前通话的音色发生了改变
 */
void onVoiceIdChanged(String voiceId);

参数详情:

参数

类型

含义

voiceId

String

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

onVoiceInterrupted

当前通话的语音打断设置改变

/**
 * 当前通话的语音打断设置改变
 */
void onVoiceInterrupted(boolean enable);

参数详情:

参数

类型

含义

enable

boolean

当前通话的语音打断设置改变

onAgentVideoAvailable

智能体视频是否可用(推流)

/**
 * 智能体视频是否可用(推流)
 */
void onAgentVideoAvailable(boolean available);

参数详情:

参数

类型

含义

enable

boolean

智能体视频是否可用(推流)

onAgentAudioAvailable

智能体音频是否可用(推流)

/**
 * 智能体音频是否可用(推流)
 */
void onAgentAudioAvailable(boolean available);

参数详情:

参数

类型

含义

enable

boolean

智能体音频是否可用(推流)

onAudioDelayInfo

音频回环延迟

/**
         * 音频回环延迟
         *  @param id 语句ID
         *  @param delay_ms 延迟
         */
public void onAudioDelayInfo(int id, int delay_ms) {}

参数详情:

参数

类型

含义

id

int

语句ID

delay_ms

int

延迟

onAgentAvatarFirstFrameDrawn

数字人首视频帧渲染

/**
*  数字人首视频帧渲染
*/
void onAgentAvatarFirstFrameDrawn();

onUserOnLine

用户上线回调

/**
*  用户上线回调
*/
void onUserOnLine(String uid);

参数详情:

参数

类型

含义

uid

String

用户入会回调

onSpeakingInterrupted

智能体当前讲话被打断

public void onSpeakingInterrupted(ARTCAICallSpeakingInterruptedReason reason);

参数说明:

参数

类型

含义

reason

ARTCAICallSpeakingInterruptedReason

原因,例如:特定词打断

onVisionCustomCapture

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

public void onVisionCustomCapture(boolean enable)

参数说明:

参数

类型

含义

enable

Bool

是否启用

onAgentWillLeave

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

/**
 * 当前智能体即将离开(结束当前通话)
 * @param reason 原因:2001(闲时退出),2002(真人接管结束), 0(其他)
 * @param message 描述原因
 */
void onAgentWillLeave(int reason, String message);

参数详情:

参数

类型

含义

reason

int

原因:2001(闲时退出),2002(真人接管结束), 0(其他)

message

String

描述原因

onHumanTakeoverWillStart

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

public void onHumanTakeoverWillStart(String takeoverUid, int takeoverMode);

参数详情:

参数

类型

含义

takeoverUid

String

真人uid

takeoverMode

Int

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

onHumanTakeoverConnected

当真人接管已经接通

public void onHumanTakeoverConnected(String takeoverUid);

当真人接管已经接通

参数

类型

含义

takeoverUid

String

真人uid

onReceivedAgentCustomMessage

智能体自定义消息

/**
 * 智能体自定义消息
 * @param data 自定义消息体,使用JSON字符串
 */
public void onReceivedAgentCustomMessage(String data);

参数详情:

参数

类型

含义

data

String

自定义消息体,使用JSON字符串

onAgentEmotionNotify

智能体情绪结果通知

public void onAgentEmotionNotify(String emotion,int userAsrSentenceId);

参数详情:

参数

类型

含义

emotion

String

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

userAsrSentenceId

Int

回答用户问题的句子ID

onAgentDataChannelAvailable

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

public void onAgentDataChannelAvailable() {}

onReceivedAgentVcrResult

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

 public void onReceivedAgentVcrResult(ARTCAICallAgentVcrResult result) {}