Android使用指南

通过阅读本文,您可以了解如何在Android端接入AI实时互动音视频智能体。

源码说明

源码下载

下载地址请参见GitHub开源项目

源码结构

├── Android       		//Android平台工程结构跟目录
│   ├── AUIBaseKits     //AUI基础组件
│   ├── AUIAICall       //UI组件
│   ├── README.md
│   ├── app             //Demo入口
│   ├── build.gradle  
│   └── settings.gradle

环境要求

  • Android Studio 插件版本4.1.3

  • Gradle 7.0.2

  • Android Studio自带 JDK11

前提要求

已在您的服务端上开发了相关接口或直接部署提供的Server源码,搭建步骤请参见项目部署

跑通Demo

  1. 源码下载后,使用Android Studio打开Android目录。

  2. 打开工程文件build.gradle,修改包Id。

  3. 进入AUIAICallAgentIdConfig.java文件,配置音视频通话智能体ID及所在区域。

    // AUIAICallAgentIdConfig.java
    // 你的语音通话智能体ID
    private static String VOICE_AGENT_ID = "<控制台语音通话智能体ID>";
    // 你的数字人通话智能体ID
    private static String Avatar_AGENT_ID = "<控制台数字人通话智能体ID>";
    // 你的视觉理解通话智能体ID
    private static String VISION_AGENT_ID = "<控制台视觉理解通话智能体ID>";
    
    //配置区域
    private static String Region = "cn-shanghai";
    说明

    智能体ID与所在Region请与控制台保持一致。如果只需要体验一种类型智能体,只需要设置对应的类型的智能体ID即可。

    地域名称

    Region Id

    华东1(杭州)

    cn-hangzhou

    华东2(上海)

    cn-shanghai

    华北2(北京)

    cn-beijing

    华南1(深圳)

    cn-shenzhen

    新加坡

    ap-southeast-1

  4. 完成智能体配置后,您可以通过以下两种方式来启动智能体:

    • 已部署AppServer: 如果你已经在您的服务端上部署了阿里云提供的AppServer源码,您还需要进入文件AppServiceConst.java,修改服务端域名。

      // AppServiceConst.java
      String HOST = "你的应用服务器域名";
    • 未部署AppServer:如果您还未部署AppServer源码,需要快速跑通Demo并体验智能体。那么您需要进入文件AUIAICallAuthTokenHelper.java,配置EnableDevelopToken参数,并从控制台拷贝智能体使用的ARTCApp IdAPP Key,在App端生成启动鉴权Token。

      重要

      该方法需在本地填写AppKey等敏感信息,仅适用于体验及开发阶段,不能用于线上发布,以防止因AppKey被盗取而导致的安全事故。

      // AUIAICallAuthTokenHelper.java
      public class AUIAICallAuthTokenHelper {
          // 设置为true,启动Develop模式
          private static final boolean EnableDevelopToken = true;
      
          //从控制台拷贝音视频通话RTCAppId
          private static final String AICallRTCDevelopAppId = "智能体使用的RTCAppId";
          // 从控制台拷贝音视频通话RTCAppKey
          private static final String AICallRTCDevelopAppKey = "智能体使用的RTCAppKey";
      }

      获取音视频ARTC应用的AppIdAppKey步骤如下:

      1. 前往智能媒体控制台,单击您创建好的智能体,进入智能体详情页面。

        image

      2. 单击RTC AppID,前往视频直播控制台,获取AppIdAppKey。

        image

快速开发自己的AI通话功能

可通过以下几个步骤快速集成AUIAICall到您的APP中,让您的APP具备智能体音视频通话功能。

集成源码

  1. 导入AUIAICall:仓库代码下载后,Android Studio菜单选择:File -> New -> Import Module,导入AUIAICallAUIBaseKits文件夹。

  2. 修改文件夹下的build.gradle的三方库依赖项。

    dependencies {
        implementation 'androidx.appcompat:appcompat:x.x.x'                     //修改x.x.x为你工程适配的版本
        implementation 'com.google.android.material:material:x.x.x'             //修改x.x.x为你工程适配的版本
        androidTestImplementation 'androidx.test.espresso:espresso-core:x.x.x'  //修改x.x.x为你工程适配的版本
        implementation 'com.aliyun.aio:AliVCSDK_ARTC:7.5.0'                  //修改x.x.x为你工程适配的版本
        implementation 'com.aliyun.auikits.android:ARTCAICallKit:2.8.0'
    }
    说明

    ARTC SDK版本请到SDK下载/集成最新适配版本号。

  3. 等待gradle同步完成,完成源码集成。

源码配置

  • 已完成前提条件所需步骤。

  • 进入AppServiceConst.java文件,修改服务端域名。

    // AppServiceConst.java
    String HOST = "你的应用服务器域名";
    说明

    如果您还未部署AppServer,您可以使用App端生成鉴权Token的方式,快速测试并跑通Demo。详细内容,请参见未部署AppServer

调用API

上述工作完成后,接下来可以根据自身的业务场景和交互,在您APP其他模块或主页上通过组件接口启动AI通话,也可以根据自身的需求修改源码。

/** 启动之前保证麦克风、摄像头权限已授权 */
Context currentActivity = AUIAICallEntranceActivity.this;
Intent intent = new Intent(currentActivity, AUIAICallInCallActivity.class);

// 设置通话的类型(语音、数字人或视觉理解),需要与AgentId的类型对应
ARTCAICallEngine.ARTCAICallAgentType aiCallAgentType = 
    ARTCAICallEngine.ARTCAICallAgentType.VoiceAgent;
// 智能体ID, 不能为nil
String aiAgentId = "";
// 智能体所在的区域,不能为nil
String aiAgentRegion = "";
// 进入rtc的用户id,建议使用业务的登录用户id
String userId = "123";
// 通话鉴权Token,参考:https://help.aliyun.com/zh/ims/user-guide/generate-artc-authentication-token?spm=a2c4g.11186623.0.0.1ce65bc4BKdQy7
String token = "";

intent.putExtra(AUIAIConstStrKey.BUNDLE_KEY_LOGIN_USER_ID, userId);
// 智能体类型
intent.putExtra(AUIAIConstStrKey.BUNDLE_KEY_AI_AGENT_TYPE, aiCallAgentType);
// 智能体ID
intent.putExtra(AUIAIConstStrKey.BUNDLE_KEY_AI_AGENT_ID, aiAgentId);
//智能体所在区域
intent.putExtra(AUIAIConstStrKey.BUNDLE_KEY_AI_AGENT_REGION, aiAgentRegion);
//设置通话鉴权Token
intent.putExtra(AUIAIConstStrKey.BUNDLE_KEY_RTC_AUTH_TOKEN, token);

currentActivity.startActivity(intent);
说明

通话鉴权Token生成,请参见生成ARTC鉴权Token