人脸检测
enableFaceDetection:
开启/关闭本地人脸检测。
Objective-C
- (int)enableFaceDetection:(bool)enable NS_SWIFT_NAME(enableFaceDetection(_:));
调用时机
该方法需要在相机启动(如通过调用 startPreview: 或 enableVideo 实现)后调用。
调用限制
无。
相关回调
成功调用该方法后,SDK 会触发 rtcEngine:facePositionDidChangeWidth:previewHeight:faces: 回调向你报告人脸检测的信息:
- 摄像头采集的画面大小
- 人脸在 view 中的位置
- 人脸距设备屏幕的距离
参数
- enable
- 是否开启人脸检测:
YES
:开启人脸检测。NO
:(默认)关闭人脸检测。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
rtcEngine:facePositionDidChangeWidth:previewHeight:faces:
报告本地人脸检测结果。
Objective-C
- (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine facePositionDidChangeWidth:(int)width previewHeight:(int)height faces:(NSArray<AgoraFacePositionInfo*>* _Nullable)faces NS_SWIFT_NAME(rtcEngine(_:facePositionDidChangeWidth:previewHeight:faces:));
详情
其中,人脸距设备屏幕的距离由 SDK 通过摄像头采集的画面大小和人脸在 view 中的位置拟合计算得出。
注意
- 当检测到摄像头前的人脸消失时,该回调会立刻触发;在无人脸的状态下,该回调触发频率会降低,以节省设备耗能。
- 当人脸距离设备屏幕过近时,SDK 不会触发该回调。
参数
- engine
- AgoraRtcEngineKit 对象。
- width
- 摄像头采集画面的宽度 (px)。
- height
- 摄像头采集画面的高度 (px)。
- faces
- 检测到的人脸信息,详见 AgoraFacePositionInfo。检测到几张人脸,就会报告几个 AgoraFacePositionInfo 数组。数组长度可以为 0,表示没有检测到摄像头前出现人脸。