使用云上曲率多语种审核插件
本文介绍如何在你的项目中集成和使用云上曲率多语种审核插件(以下简称云上曲率审核插件)。
技术原理
云上曲率审核插件是对云上曲率实时音频审核和实时视频审核核心 API 的封装。通过声网 SDK v4.x 提供的 setExtensionPropertyWithVendor
方法,传入指定的 key
和 value
参数,你可以快速集成云上曲率的多语种审核能力。
setExtensionPropertyWithVendor
方法的 key
参数与云上曲率的 API 名称完全对应,value
参数以 JSON 格式包装该 API 的部分或全部参数。因此,调用该方法时只要传入指定的 key
和 value
,就可以调用对应的云上曲率 API,实现多语种审核的有关功能。
前提条件
iOS 开发环境需满足以下要求:
- Xcode 或以上版本。
- 运行 iOS 或以上版本的真机(非模拟器)。
示例项目
云上曲率审核插件提供了一个 GitHub 示例项目,你可以前往克隆或下载并进行体验。
平台 | 语言 | 示例项目 |
---|---|---|
Android | Java | 项目示例 |
iOS | Objective-C | 项目示例 |
参考以下运行步骤:
-
克隆仓库:
Shellgit clone https://github.com/highras/rtau-agora-marketplace.git
-
在 Xcode 中打开项目。
-
在终端中进入
iOS/SW_Test
,运行以下命令使用 CocoaPods 安装依赖:Shellpod install
-
在 Xcode 中打开项目
SW_Test.xcworkspace
。 -
打开
iOS/SW_Test/SW_Test/ViewController.mm
文件,进行如下修改:-
填入你的声网 App ID、Token 和频道名。获取方式请参考开通服务。
-
填入你的实时音视频审核 appKey 和 appSecret。获取方式详见购买和激活插件。
-
填入你的回调地址,用于接收审核结果。
Objective-C// 填入实时音视频审核 appKey
self.appKeyRTAU = @"";
// 填入实时音视频审核 appSecret
self.appSecretRTAU = @"";
// 填入接收审核结果的回调地址
self.callbackUrl = @"";Objective-C// 填入你的声网 App ID
self.agora_appId = @"";
// 填入你的声网频道名
self.agora_RoomId = @"";
// 填入你的声网 Token
self.agora_Token = @"";
-
-
连接一台 iOS 真机(非模拟器),运行项目。运行成功后,示例项目会安装到你的 iOS 设备上。
-
启动 App,点击 first add room 按钮进入频道。
-
点击 Start RTAU 开始实时音视频审核。如果有违规内容,你填入的回调地址会接收到审核结果。
-
点击 End RTAU 按钮结束实时音视频审核。
集成和调用流程
1. 集成 SDK 和插件
1.1 集成声网视频 SDK
云上曲率审核插件插件需要与 RTC SDK 搭配使用。参考以下文档集成 RTC SDK 并实现基础的音视频互动:
该插件支持声网 SDK v4.2.0 或以上版本。
1.2 购买和激活插件
在声网控制台购买和激活云上曲率审核插件,保存好获取到的 appKey
和 appSecret
,后续初始化插件时需要用到。
1.3 集成插件
参考如下步骤在你的项目中集成云上曲率审核插件:
- 进入声网控制台 > 云市场页面,下载云上曲率多语种审核插件的 iOS 插件包。解压后,将所有
.framework
库文件保存到你的项目文件夹下。 - 在 Xcode 中添加动态库,确保 Embed 属性设置为 Embed & Sign。
以如下项目结构为例,你可以把库文件保存到 <ProjectName>
路径下。
├── <ProjectName>
├── <ProjectName>.xcodeproj
2. 启用插件
云上曲率审核插件包括 RTVT 和 RTAU 两个功能模块,你可以根据业务场景按需启用:
业务场景 | RTVT | RTAU |
---|---|---|
识别翻译 | 启用 | 不启用 |
纯视频审核 | 不启用 | 启用 |
纯音频审核 | 启用 | 启用 |
音频+视频审核 | 启用 | 启用 |
初始化声网 AgoraRtcEngineKit
时,调用 enableExtensionWithVendor
启用插件。
// 启用 RTAU
[_agoraKit enableExtensionWithVendor:[iLiveDataSimpleFilterManager companyName]
extension:[iLiveDataSimpleFilterManager rtau_plugName]
enabled:YES];
// 启用 RTVT
[_agoraKit enableExtensionWithVendor:[iLiveDataSimpleFilterManager companyName]
extension:[iLiveDataSimpleFilterManager rtvt_plugName]
enabled:YES];
2. 开始审核
调用 setExtensionPropertyWithVendor
指定 key
为 startAudit
,在 value
中以 JSON 格式传入 appkey
、appsecret
等参数。插件会根据RTVT 和 RTAU 模块的启用情况以及你传入的媒体数据自行判断业务场景,开始审核。
NSDictionary * auditDic = @{
// 传入在声网控制台购买和激活插件后获取的 appKey
@"appKey":@"appKey",
// 传入在声网控制台购买和激活插件后获取的 appSecret
@"appSecret":@"appSecret",
// 传入音频流或视频流的 ID(需要你自行生成和维护)
@"streamId":@"streamId",
// 传入音频流或视频流的语言(不传将自动识别)
@"audioLang":@"zh-CN",
// 传入你的回调地址
@"callbackUrl":@"callbackUrl"
};
NSData * auditDicJsonData = [NSJSONSerialization dataWithJSONObject:auditDic options:NSJSONWritingPrettyPrinted error:nil];
NSString * auditDicJsonString = [[NSString alloc] initWithData:auditDicJsonData encoding:NSUTF8StringEncoding];
// 只需要在 RTAU 模块调用 startAudit
[_agoraKit setExtensionPropertyWithVendor:[iLiveDataSimpleFilterManager companyName]
extension:[iLiveDataSimpleFilterManager rtau_plugName])
key:@"startAudit"
value:auditDicJsonString];
3. 接收审核结果
审核结果会以 HTTP 请求的形式直接发送到你通过 callbackUrl
设置的地址。默认情况下,只有在检测到违规内容(包括音频和视频)时,才会回调审核结果。审核结果的回调参数解释参考图片审核接口说明、音频审核接口说明。
4. 结束使用插件
调用 setExtensionPropertyWithVendor
方法并指定 key
为 closeAudit
来结束云上曲率审核插件的使用。
[self.kit setExtensionPropertyWithVendor:[iLiveDataSimpleFilterManager companyName]
extension:[iLiveDataSimpleFilterManager rtau_plugName]
key:"closeAudit"
value:""];