本文介绍如何在你的项目中集成和使用云上曲率多语种审核插件(以下简称云上曲率审核插件),包括 Android 和 iOS 平台。
云上曲率审核插件是对云上曲率实时音频审核和实时视频审核核心 API 的封装。通过声网 SDK v4.x 提供的 setExtensionProperty 或 setExtensionPropertyWithVendor 方法,传入指定的 key
和 value
参数,你可以快速集成云上曲率的多语种审核能力。
以 setExtensionProperty
为例,其中的 key
参数与云上曲率的 API 名称完全对应,value
参数以 JSON 格式包装该 API 的部分或全部参数。因此,调用 setExtensionProperty
时只要传入指定的 key
和 value
,就可以调用对应的云上曲率 API,实现多语种审核的有关功能。setExtensionPropertyWithVendor
同理。
平台 | 语言 | 示例项目 |
---|---|---|
Android | Java | 项目示例 |
iOS | Objective-C | 项目示例 |
参考以下运行步骤:
Android
git clone https://github.com/highras/rtau-agora-marketplace.git
Android/RTVTRTAUFilter
。app/src/main/res/values/string_configs.xml
文件,进行如下修改:"agora_app_id"
和 "agora_access_token"
替换成你的声网 App ID 和 Token。获取方式请参考开始使用 Agora 平台。"livedata_audit_pid"
和 "livedata_audit_key"
替换成你从声网控制台获取的 appKey 和 appSecret(分别对应云上曲率的项目 id 和 key)。获取方式详见购买和激活插件。"livedata_callbackUrl"
替换成你的回调地址,用于接收审核结果。iOS
克隆仓库:
git clone https://github.com/highras/rtau-agora-marketplace.git
在 Xcode 中打开项目。
在终端中进入 iOS/SW_Test
,运行以下命令使用 CocoaPods 安装依赖:
pod install
在 Xcode 中打开项目 SW_Test.xcworkspace
。
打开 iOS/SW_Test/SW_Test/ViewController.mm
文件,进行如下修改:
// 填入实时音视频审核 appKey
self.appKeyRTAU = @"";
// 填入实时音视频审核 appSecret
self.appSecretRTAU = @"";
// 填入接收审核结果的回调地址
self.callbackUrl = @"";
// 填入你的声网 App ID
self.agora_appId = @"";
// 填入你的声网频道名
self.agora_RoomId = @"";
// 填入你的声网 Token
self.agora_Token = @"";
连接一台 iOS 真机(非模拟器),运行项目。运行成功后,示例项目会安装到你的 iOS 设备上。
启动 app,点击 first add room 按钮进入频道。
点击 Start RTAU 开始实时音视频审核。如果有违规内容,你填入的回调地址会接收到审核结果。
点击 End RTAU 按钮结束实时音视频审核。
云上曲率审核插件需要与声网视频 SDK v4.x 搭配使用。参考以下文档集成视频 SDK v4.x 并实现基础的视频通话:
在声网控制台购买和激活云上曲率审核插件,保存好获取到的 appKey
和 appSecret
,后续初始化插件时需要用到。
参考如下步骤在你的项目中集成云上曲率审核插件:
Android
进入声网控制台 > 云市场页面,下载云上曲率多语种审核插件的 Android 插件包。解压后,将 libagora-iLiveData-filter.aar
文件保存到项目文件夹的 /app/libs
路径。
打开 app/build.gradle
文件,在 dependencies
中添加如下行:
implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"])
iOS
.framework
库文件保存到你的项目文件夹下。以如下项目结构为例,你可以把库文件保存到 <ProjectName>
路径下。
├── <ProjectName>
├── <ProjectName>.xcodeproj
下面介绍插件相关接口的调用流程。接口的参数解释详见接口说明。
云上曲率审核插件包括 RTVT 和 RTAU 两个功能模块,你可以根据业务场景按需启用:
业务场景 | RTVT | RTAU |
---|---|---|
识别翻译 | 启用 | 不启用 |
纯视频审核 | 不启用 | 启用 |
纯音频审核 | 启用 | 启用 |
音频+视频审核 | 启用 | 启用 |
Android
初始化声网 RtcEngine
时,调用 addExtension
加载插件,然后调用 enableExtension
启用插件。
RtcEngineConfig config = new RtcEngineConfig();
config.addExtension("agora-iLiveData-filter");
engine = RtcEngine.create(config);
// 启用 RTAU
engine.enableExtension("iLiveData", "RTAU", true);
// 启用 RTVT
engine.enableExtension("iLiveData", "RTVT", true);
iOS
初始化声网 AgoraRtcEngineKit
时,调用 enableExtensionWithVendor
启用插件。
// 启用 RTAU
[_agoraKit enableExtensionWithVendor:[iLiveDataSimpleFilterManager companyName]
extension:[iLiveDataSimpleFilterManager rtau_plugName]
enabled:YES];
// 启用 RTVT
[_agoraKit enableExtensionWithVendor:[iLiveDataSimpleFilterManager companyName]
extension:[iLiveDataSimpleFilterManager rtvt_plugName]
enabled:YES];
Android
调用 setExtensionProperty
指定 key 为 startAudit
,在 value 中以 JSON 格式传入appkey
、appsecret
等参数。插件会根据RTVT 和 RTAU 模块的启用情况以及你传入的媒体数据自行判断业务场景,开始审核。
JSONObject jsonObject = new JSONObject();
// 传入在声网控制台购买和激活插件后获取的 appKey
jsonObject.put("appKey", "appKey");
// 传入在声网控制台购买和激活插件后获取的 appSecret
jsonObject.put("appSecret", "appSecret");
// 传入音频流或视频流的 ID(需要你自行生成和维护)
jsonObject.put("streamId", "streamId");
// 传入音频流或视频流的语言(不传将自动识别)
jsonObject.put("audioLang", "zh-CN");
// 传入你的回调地址
jsonObject.put("callbackUrl", "");
// 只需要在 RTAU 模块调用 startAudit
engine.setExtensionProperty("iLiveData", "RTAU", "startAudit", jsonObject.toString());
iOS
调用 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];
审核结果会以 HTTP 请求的形式直接发送到你通过 callbackUrl
设置的地址。默认情况下,只有在检测到违规内容(包括音频和视频)时,才会回调审核结果。审核结果的回调参数解释参考图片审核接口说明、音频审核接口说明。
Android
调用 setExtensionProperty
方法并指定 key 为 closeAudit
来结束云上曲率审核插件的使用。
engine.setExtensionProperty("iLiveData", "RTAU", "closeAudit", "{}");
iOS
调用 setExtensionPropertyWithVendor
方法并指定 key 为 closeAudit
来结束云上曲率审核插件的使用。
[self.kit setExtensionPropertyWithVendor:[iLiveDataSimpleFilterManager companyName]
extension:[iLiveDataSimpleFilterManager rtau_plugName]
key:"closeAudit"
value:""];
插件所有相关接口的参数解释详见接口说明。