使用方法

本文介绍如何在使用 声网RTC 的项目中集成和使用云上曲率实时音视频审核插件(以下简称实时音视频审核插件),进行实时音视频审核,包括Android和iOS平台。

技术原理

实时音视频审核插件是对云上曲率实时音频审核实时视频审核核心 API 的封装。通过调用声网视频 SDKsetExtensionPropertysetExtensionPropertyWithVendor方法,传入指定的 keyvalue 参数,你可以快速集成云上曲率的实时语音识别和翻译的能力。支持的 key 和 value 详见接口说明

前提条件

  • Android 开发环境需满足以下要求:
    • Android Studio 4.1 以上版本。
    • 运行 Android 5.0 或以上版本的真机(非模拟器)。
  • iOS 开发环境需满足以下要求:
    • Xcode 9.0 或以上版本。
    • 运行 iOS 12.0 或以上版本的真机(非模拟器)。

准备工作

使用声网 SDK 实现视频通话

实时音视频审核插件需要与声网视频 SDK v4.0.0 Beta 搭配使用。参考以下文档集成视频 SDK v4.0.0 Beta 并实现基础的视频通话:

购买和激活插件

在声网控制台购买和激活实时音视频审核插件,保存好获取到的 appKeyappSecret,后续初始化插件时需要用到。

集成插件

参考如下步骤在你的项目中集成实时音视频审核插件:

  • Android
  1. 声网云市场下载页面下载实时音视频审核插件的 Android 插件包。解压后,将所有 libagora-iLiveData-filter.aar 文件保存到项目文件夹的 /app/libs 路径。

  2. 打开 app/build.gradle 文件,在 dependencies 中添加如下行:

    implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"])
    
  • iOS
  1. 声网云市场下载页面下载实时音视频审核插件的 iOS 插件包。解压后,将所有 .framework 库文件保存到你的项目文件夹下。
  2. 在 Xcode 中添加动态库,确保 Embed 属性设置为 Embed & Sign

以如下项目结构为例,你可以把库文件保存到 <ProjectName> 路径下。

├── <ProjectName>
├── <ProjectName>.xcodeproj

调用流程

本节介绍插件相关接口的调用流程。接口的参数解释详见接口说明

注意:

  • 如果要使用音频审核,需要调用enableExtensionenableExtensionWithVendor时,启用插件rtvtrtau_pre ,之后使用startAudit_pre进行音频数据的审核。
  • 如果要使用视频(图片)审核,需要调用enableExtensionenableExtensionWithVendor时,启用插件rtau_pre ,之后使用startAudit_pre进行视频(图片)数据的审核。
  • 如果要使用音频+视频(图片)审核,需要调用enableExtensionenableExtensionWithVendor时,启用插件rtvtrtau_pre ,之后使用startAudit_pre进行音频数据和视频(图片)数据的审核。

1. 启用插件

  • Android

初始化声网 AgoraRtcEngine 时,调用 enableExtension 启用插件。

    RtcEngineConfig config = new RtcEngineConfig();
    config.addExtension("agora-iLiveData-filter-pre");
    engine = RtcEngine.create(config);
    engine.enableExtension("iLiveData", "RTAU_PRE", true);
  • iOS

初始化声网 AgoraRtcEngineKit 时,调用 enableExtensionWithVendor 启用插件。

   [_agoraKit enableExtensionWithVendor:[iLiveDataSimpleFilterManager_pre companyName]
                              extension:[iLiveDataSimpleFilterManager_pre rtau_pre_plugName]
                                enabled:YES]

2. 使用插件

  • Android

调用setExtensionProperty 指定key 为 startAudit_pre 在value中以json格式传入appkey appsecret等参数。

    JSONObject jsonObject = new JSONObject();
    jsonObject.put("appKey", "appKey");
    jsonObject.put("appSecret", "appSecret");
    jsonObject.put("streamId", "streamId");
    jsonObject.put("audioLang", "zh-CN");
    jsonObject.put("callbackUrl", "");
    engine.setExtensionProperty("iLiveData", "RTAU_PRE", "startAudit_pre", jsonObject.toString());
  • iOS

调用setExtensionPropertyWithVendor指定 key 为 startAudit_pre 在value中以json格式传入appkey appsecret等参数。

     NSDictionary * auditDic = @{
                                @"appKey":@"appKey",
                                @"appSecret":@"appSecret",
                                @"streamId":@"streamId",
                                @"audioLang":@"zh-CN",
                                @"callbackUrl":@"callbackUrl"
                               };

     NSData * auditDicJsonData = [NSJSONSerialization dataWithJSONObject:auditDic options:NSJSONWritingPrettyPrinted error:nil];
     NSString * auditDicJsonString = [[NSString alloc] initWithData:auditDicJsonData encoding:NSUTF8StringEncoding];

     [_agoraKit setExtensionPropertyWithVendor:[iLiveDataSimpleFilterManager_pre companyName]
                                     extension:[iLiveDataSimpleFilterManager_pre rtau_pre_plugName])
                                           key:@"startAudit_pre"
                                         value:auditDicJsonString];

3. 结束使用插件

  • Android

调用 setExtensionProperty方法并指定 key 为 closeAudit_pre 来结束实时音视频审核插件的使用。

    engine.setExtensionProperty("iLiveData", "RTAU_PRE", "closeAudit_pre", "{}");
  • iOS

调用 setExtensionPropertyWithVendor方法并指定 key 为 closeAudit_pre 来结束实时音视频审核插件的使用。

    [self.kit setExtensionPropertyWithVendor:[iLiveDataSimpleFilterManager_pre companyName]
                                   extension:[iLiveDataSimpleFilterManager_pre rtau_pre_plugName]
                                         key:"closeAudit_pre"
                                       value:""];

示例项目

平台 语言 示例项目
Android Java 项目示例
iOS Objective-C 项目示例

运行步骤

Android

  1. 克隆仓库:
  git clone (https://github.com/highras/rtau-shengwang-marketplace)
  1. 将项目的\app\src\main\res\values\string_configs.xml 文件中的"agora_app_id" 和"agora_access_token"替换成你自己声网的appid和apptoken 获取 App ID 请参考开始使用 Agora 平台; 将"livedata_audit_pid" 和 “livedata_audit_key"替换成云上曲率项目id和key 获取方式详见购买和激活插件。将"livedata_callbackUrl” 填入审核结果地址
  2. 连接一台 Android 真机(非模拟器),运行项目。

iOS

  1. 声网云市场下载页面下载实时音视频审核插件的 iOS 插件包并解压。
  2. 在 Xcode 中打开项目。
  3. 打开 ViewController,进行如下修改:
    • 将 agora_appId 替换为你的 App ID。获取 App ID 请参考开始使用 Agora 平台
    • 将 appKey 和 appSecret 分别替换为你的 appKeyappSecret。获取方式详见购买和激活插件。 将"callbackUrl"替换成你的审核结果地址
NSString *const appID = @"<YOUR_APP_ID>";
NSString *const appkey = @"<YOUR_APP_KEY>";
NSString *const secret = @"<YOUR_SECRET>";
  1. 连接一台 iOS 真机(非模拟器),运行项目。

预期效果

运行成功后,示例项目会安装到你的 Android 或 iOS 设备上。

  1. 启动 app,你可以在界面上看到 add roomStart RTAU 按钮
  2. 点击 add room 进入房间。
  3. 点击 Start RTAU 开始实时音视频审核。
  4. 点击 End Audit 结束实时音视频审核。

接口说明

插件所有相关接口的参数解释详见接口说明