# JavaScript SDK

# 引用及实例化SDK

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AI云监考 SDK</title>
    <script id="escloud-inspection-sdk-script" src="//service-cdn.qiqiuyun.net/js-sdk-v2/escloud-inspection-sdk.js" async></script>
</head>
<body>
    <div id="capture" style="width: 480px; height: 360px; border: 1px solid #ccc;"></div>

    <script>
        window.onESCloudSDKReady = function (SDK) {
        if (SDK.TYPE != 'Inspection') {
            return ;
        }

        const sdk = new SDK({
            id: "capture",
            token: "<token>",
        })
    }
    </script>
</body>
</html>

# 参数

# id

  • 类型:string
  • 必填:是
  • 描述:页面中用于初始化视频图像捕捉的DOM元素的ID。
  • 用法:
    const sdk = new SDK({
        id: "capture",
        token: "<token>",
    })
    

# token

  • 类型:string
  • 必填:是
  • 描述:AI云监考启动令牌,由后端生成。
  • 用法:
    const sdk = new SDK({
        id: "capture",
        token: "<token>",
    })
    

# 接口

# setCheatingRule(minDuration, maxDuration, count)

  • 参数:
    • {int} minDuration:行为最小持续时长;
    • {int} maxDuration:行为最大持续时长;
    • {int} count:行为最多发生次数,超过此次数后,将被判定为作弊;
  • 描述:设置作弊检测策略规则。
  • 用法:
    sdk.setCheatingRule(1, 3, 10); // 行为持续时长在 1 ~ 3 秒,且超过 10 次,被判定为作弊
    sdk.setCheatingRule(3, 10, 3); // 行为持续时长在 3 ~ 10 秒,且超过 3 次,被判定为作弊
    sdk.setCheatingRule(10, 8640000, 1); // 行为持续时长超过 10 秒,且超过 1 次,被判定为作弊
    

# clearRules()

  • 描述:清除作弊检测策略规则。
  • 用法:
    sdk.clearRules(); 
    

# setRealFace(url)

  • 参数:
    • {string} url:用于标识考生的人像图片地址;
  • 描述:设置考生人像,用于比对是否本人。
  • 用法:
    sdk.setRealFace('http:///example.com/user.jpg'); 
    

# captureRealFaces()

  • 描述:使用SDK内置人像捕捉器捕捉人像。
  • 用法:
    sdk.captureRealFaces(); 
    

# start()

  • 描述:开启监考。
  • 用法:
    sdk.start(); 
    

# stop()

  • 描述:结束监考。
  • 用法:
    sdk.stop(); 
    

# 事件

可通过 sdk.on(String: eventName, Function: callback) 方法可监听事件。 例如:

sdk.on('initialized', function() {
  console.loglog('AI云监考SDK已初始化成功');
});

# initialized

  • 描述:当SDK初始化完成后出发。
  • 用法:
    sdk.on('initialized', function() {
      // ...
    })
    

# capture_real_face.started

  • 描述:当人像采集启动后触发。
  • 用法:
    sdk.on('capture_real_face.started', function() {
      // ...
    })
    

# capture_real_face.captured

  • 描述:成功采集到人像后出发。
  • 用法:
    sdk.on('capture_real_face.captured', function(data) {
      let img = new Image(200)
      img.src = data.capture;
    })
    

# capture_real_face.finished

  • 描述:当人像采集结束后触发。
  • 用法:
    sdk.on('capture_real_face.finished', function() {
      // ...
    })
    

# inspection.started

  • 描述:当云监考启动后触发。
  • 用法:
    sdk.on('inspection.started', function() {
      // ...
    })
    

# inspection.stopped

  • 描述:当云监考停止后触发。
  • 用法:
    sdk.on('inspection.stopped', function() {
      // ...
    })
    

# cheat.happened

  • 描述:当检测到可疑作弊行为时出发。
  • 用法:
    sdk.on('cheat.happened', function() {
      // ...
    })
    

# cheat.happened

  • 描述:当可疑作弊行为消失时出发。
  • 用法:
    sdk.on('cheat.disappeared', function() {
      // ...
    })