本节提供声网 SDK 中插件相关 API 的参考文档。
RtcEngineConfig 类的 addExtensionRtcEngine 类的 enableExtensionRtcEngine 类的 setExtensionPropertyRtcEngine 类的 getExtensionPropertyIMediaExtensionObserver 类的 onEventAgoraRtcEngineKit 类的 enableExtensionWithVendorAgoraRtcEngineKit 类的 setExtensionPropertyWithVendorAgoraRtcEngineKit 类的 getExtensionPropertyWithVendorAgoraMediaFilterEventDelegate 类的 onEventRtcEngine 类的 enableExtensionRtcEngine 类的 setExtensionPropertyRtcEngineEventHandler 类的 onExtensionEvent本节列出调用声网 SDK 的 setExtensionProperty/setExtensionPropertyWithVendor 方法时,支持传入的 key 及对应功能。
| setExtensionProperty/setExtensionPropertyWithVendor 方法的 key | 描述 |
|---|---|
| fuSetup | 初始化并鉴权。必须在其他 key 之前执行,否则会引发崩溃。 |
| fuLoadAIModelFromPackage | 预加载 AI 能力。 |
| fuReleaseAIModel | 释放特定 AI 能力的资源。 |
| setExtensionProperty/setExtensionPropertyWithVendor 方法的 key | 描述 |
|---|---|
| fuCreateItemFromPackage | 加载道具包。 |
| fuLoadTongueModel | 加载舌头检测数据。 |
| fuItemSetParam | 修改或设定道具包中变量的值。 |
| setExtensionProperty/setExtensionPropertyWithVendor 方法的 key | 描述 |
|---|---|
| fuDestroyItem | 销毁一个指定道具。 |
| fuDestroyAllItems | 销毁系统加载的所有道具,并释放系统运行时占用的所有资源。 |
| fuOnDeviceLost | 当 OpenGL context 被外部释放/破坏时调用,用于重置系统的 GL 状态。 |
| fuDestroyLibData | 释放由 fuSetup 初始化所分配的人脸跟踪模块的内存。 |
| setExtensionProperty/setExtensionPropertyWithVendor 方法的 key | 描述 |
|---|---|
| fuBindItems | 将资源道具绑定到目标道具上。 |
| fuUnbindItems | 将资源道具从目标道具上解绑。 |
| fuIsTracking | 是否获取正在跟踪的人脸数量。 |
| fuSetMaxFaces | 设置系统跟踪的最大人脸数。 |
| fuSetDefaultRotationMode | 设置默认的人脸朝向。 |
| setExtensionProperty/setExtensionPropertyWithVendor 方法的 key | 描述 |
|---|---|
| fuFaceProcessorSetMinFaceRatio | 设置人脸检测距离。 |
| fuSetTrackFaceAIType | 设置 fuTrackFace 算法运行类型。 |
| fuSetFaceProcessorFov | 设置 FaceProcessor人脸算法模块跟踪 fov。 |
| fuHumanProcessorReset | 重置 HumanProcessor 人体算法模块状态。 |
| fuHumanProcessorSetMaxHumans | 设置 HumanProcessor 人体算法模块跟踪人体数。 |
| fuHumanProcessorGetNumResults | 是否获取 HumanProcessor 人体算法模块跟踪的人体数。 |
| fuHumanProcessorSetFov | 设置 HumanProcessor 人体算法模块跟踪人体 3D 关键点时使用的 fov。 |
| fuHandDetectorGetResultNumHands | 是否获取 HandGesture 手势算法模块跟踪的手势数量。需加载 ai_gesture.bundle。 |
本节列出声网 SDK 的 onEvent 回调返回的 key。
| onEvent 回调的 key | 描述 |
|---|---|
| fuIsTracking | 返回正在跟踪的人脸数量。 |
| fuHumanProcessorGetNumResults | 返回 HumanProcessor 人体算法模块跟踪的人体数。 |
| fuHandDetectorGetResultNumHands | 返回 HandGesture 手势算法模块跟踪的手势数量。 |
| fuDestroyLibData | 该回调表明已经释放由 fuSetup 初始化所分配的人脸跟踪模块的内存。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
authdata |
指向证书文件 authpack 的路径。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
data |
String 型,AI 能力模型文件 ai_xxx.bundle 的路径。该类文件位于资源包的 assets/AI_Model 目录。 |
type |
Int 型,描述 bundle 对应的 AI 能力类型。具体取值详见 enum FUAITYPE,点击下载查看。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
data |
String 型,要加载的道具包的路径。道具包通常以 *.bundle 结尾。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
data |
String 型,舌头模型数据 tongue.bundle 的路径。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
obj_handle |
String 型,调用 fuCreateItemFromPackage 加载道具包时传入的道具包路径。 |
name |
String 型,要设定的道具变量名。 |
value |
Object 型,要设定的变量值。 |
美颜支持的道具变量名和变量值详见 相芯美颜道具功能文档。
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
item |
String 型,调用 fuCreateItemFromPackage 加载道具包时传入的道具包路径。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
obj_handle |
String 型,目标道具的路径。 |
p_items |
String 型数组,需要绑定的资源道具对应的路径数组。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
obj_handle |
String 型,目标道具的路径。 |
p_items |
String 型数组,需要解绑的资源道具对应的路径数组。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
enable |
Bool 型,是否获取正在跟踪的人脸数量。设为 true 会触发 fuIsTracking 回调。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
enable |
Bool 型,是否获取 HumanProcessor 人体算法模块跟踪的人体数量。设为 true 会触发 fuHumanProcessorGetNumResults 回调。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
enable |
Bool 型,是否获取 HandGesture 手势算法模块跟踪的手势数量。设为 true 会触发 fuHandDetectorGetResultNumHands 回调。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
faces |
Int 型,正在跟踪的人脸数量。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
people |
Int 型,正在跟踪的人体数量。 |
value 包含以下参数:
| value 参数 | 描述 |
|---|---|
hands |
Int 型,正在跟踪的手势数量。 |
value 不包含任何参数。
本节介绍 API 调用失败时返回的错误码,包含以下两种:
agorasdk.log 文件查看。例如:fuSetup ret: -1 表示调用 setExtensionProperty/setExtensionPropertyWithVendor 并传入 key 为 fuSetup 时出错,错误码为 -1。| API | 错误码 | 说明 |
|---|---|---|
enableExtension/ enableExtensionWithVendor |
-3(SDK 层) |
SDK 找不到对应的插件动态库。可能的原因有: |
setExtensionProperty/ setExtensionPropertyWithVendor |
-1(插件层) |
fuSetup:重复调用,fuSetup 只需要调用一次。fuLoadAIModelFromPackage 或 fuCreateItemFromPackage:传入的 value 值有误。 |
-2(SDK 层) |
enableExtension 的调用时序错误或调用时机太晚。 |
|
-2(插件层) |
参数错误。可能的原因有: |
|
-20(插件层) |
fuLoadAIModelFromPackage:该 AI 能力已经加载过,无需重复加载。fuDestroyItem 时:该道具已经销毁,无需重复销毁。 |