Skip to content

取得扫描条件检查结果

目标 SDK

JavaScript
React
Vue
Flutter
ReactNative
Android
iOS

TIP 提示

您可以参考 示例程式码API 参考 以了解更多详情。最相关的 API 包括:VideoFrameProcessedEventScanConditions

若要取得每帧的条件检查结果,请透过 onVideoFrameProcessed 回呼函数存取 event.scanConditions 变数。此回调函数以每秒 30Hz 的频率提供处理结果(此频率取决于相机的帧率)。

typescript
/* 更新 onload 事件处理函数 */
window.onload = () => {
    /* 在「设定相机」步骤中建立的相机的引用。 */
    const cam = createVitalSignCamera({ isActive: true, config, userInfo })

    // ...

    /* 新增或更新 onVideoFrameProcessed 回呼函数 */
    cam.onVideoFrameProcessed = (event: VideoFrameProcessedEvent) => {
        // ...

        /* 取得并列印条件检查结果 */
        const conditions = event.scanConditions;
        console.log(`面部居中=${conditions?.centered}, 人脸位置条件=${conditions?.facePositionCondition}`);
        console.log(`适当距离=${conditions?.distance}, 距离条件=${conditions?.distanceCondition}`);
        console.log(`光线充足=${conditions?.lighting}`);
        console.log(`保持静止=${conditions?.movement}`);
        console.log(`足够帧率=${conditions?.frameRate}, FPS=${conditions?.fps}`);
        console.log(`服务器就绪=${conditions?.serverReady}`);
    }
}
js
/* 更新 onload 事件处理函数 */
window.onload = () => {
    /* 在「设定相机」步骤中建立的相机的引用。 */
    const cam = createVitalSignCamera({ isActive: true, config, userInfo })

    // ...

    /* 新增或更新 onVideoFrameProcessed 回呼函数 */
    cam.onVideoFrameProcessed = (event) => {
        // ...

        /* 取得并列印条件检查结果 */
        const conditions = event.scanConditions;
        console.log(`面部居中=${conditions.centered}, 人脸位置条件=${conditions.facePositionCondition}`);
        console.log(`适当距离=${conditions.distance}, 距离条件=${conditions.distanceCondition}`);
        console.log(`光线充足=${conditions.lighting}`);
        console.log(`保持静止=${conditions.movement}`);
        console.log(`足够帧率=${conditions.frameRate}, FPS=${conditions.fps}`);
        console.log(`服务器就绪=${conditions.serverReady}`);
    }
}

TIP 提示

为了获得良好的用户体验并确保测评准确,建议至少在启动 Vitals™ 扫描之前在萤幕上即时显示扫描条件。这样,如果某些条件不满足,用户可以立即做出反应(例如,透过调整头部位置)来满足条件。请参阅 示例程式码 以取得参考实作。