123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- <!DOCTYPE html>
- <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta charset="utf-8" />
- <title>Demo</title>
- <style>
- a {
- margin:20px;
- }
- </style>
- </head>
- <body>
- <div>这是一个测试页面</div>
- <div id="page1">
- <a id="start" href="javascript:faceLogin()">人脸登录</a>
- <a id="sign" href="javascript:sign()">手写签名</a>
- <img id="signImg" src=""/>
- </div>
- <div id="page2" style="display:''">
- <div>
- <a href="javascript:faceLogin()">人脸登录</a>
- <a id="start" href="javascript:init()">初始化设备</a>
- <a id="start" href="javascript:start()">开始录像</a>
- <a id="stop" href="javascript:stop()">停止录像</a>
- <a id="play" href="javascript:play()">播放录像</a>
- <a id="upload" href="javascript:upload()">上传录像</a>
- <a id="start" href="javascript:setVideoTime()">设置60秒时长(默认为30秒)</a>
- 分辩率:<select id="wh" onchange="changeWH(this)"></select>
- 视频速率:<select id="fps" onchange="changeFps(this)">
- <option>10</option>
- <option>11</option>
- </select>(先设置此值后再开始录像)
- </div>
- <div>
- <a id="start" href="javascript:start_voice()">语音求助</a>
- </div>
- <div>
- <a id="start" href="javascript:window.external.PreviewPdf('new_45567961661964288.pdf',0,0,0,0)">PDF预览</a>
- <a id="start" href="javascript:window.external.ClosePreviewPdf()">关闭PDF预览</a>
- </div>
- <div id="hint"></div>
- <div>
- <video controls="controls" id="audio_id" autoplay="autoplay" src="http://39.108.150.108:9001/video_0001.mp4"></video>
- </div>
- </div>
- </body>
- </html>
- <script language="javascript">
- var hint = document.getElementById("hint");
- var recordTime = 30;
- var videoPath = "";
- var fpsEle = document.getElementById('fps');
- var fpsItems = [];
- for (var i = 9; i <= 30; i++) {
- fpsItems.push('<option>'+i+'</option>');
- }
- fpsEle.innerHTML = fpsItems.join('');
- function changeFps() {
- window.external.SetFps(fpsEle.value); //该速率在1280*720分辩率下正常,需要根据实际采用的分辩率调整该值
- }
- function setVideoTime() {
- recordTime = 60;
- window.external.setLong(recordTime);
- }
- function init() {
- var re = window.external.Init("0");
- }
- function start() {
- //if (windowEx.SetPix(640, 480) == 0) {
- // alert("无效的分辩率设置。");
- // return;
- //}
- hint.innerHTML = "正在启动录像设备...";
- //window.external.SetFps(25); //该速率在1280*720分辩率下正常,需要根据实际采用的分辩率调整该值
- window.external.button_start_Click("0002");
- hint.innerHTML = "正在录像中...";
- if(recordTime>0) checkResult();
- }
- function stop() {
- window.external.button_stop_Click();
- hint.innerHTML = "已停止录像...";
- }
- function play() {
- if (videoPath == '') {
- alert("未开始录制或录制还未完成。");
- return;
- }
- document.getElementById("audio_id").src= videoPath;
- }
- //视频录像结束的回调函数
- //path:视频文件的本地路径
- function RecordFinish(path)
- {
- videoPath = path;
- hint.innerHTML = path;
- }
- //判断是否录制结束
- function checkResult() {
- setTimeout(function () {
- recordTime--;
- if (recordTime <= 0) {
- //录制完成,获取本地文件路径
- videoPath = window.external.GetVideoLocalPath();
- hint.innerHTML = videoPath;
- }
- else {
- checkResult();
- }
- },1000)
- }
- function QueryVideoCapabilities(lst) {
- var lst = eval("(" + lst + ")");
- var wh = document.getElementById("wh");
- var tmpary = [];
- for (var i = 0; i < lst.length; i++) {
- tmpary.push("<option value="+i+">"+lst[i].w+" "+lst[i].h+"</option>");
- }
- wh.innerHTML = tmpary.join("");
- }
- function changeWH(e) {
- window.external.SetPixIndex(document.getElementById("wh").value);
- }
- //开始人脸识别
- function faceLogin() {
- window.external.StartFace(0);//30秒匹配时长,如果30秒都还未匹配到结果,则自动停止
- }
- //人脸匹配完成后,由网页容器自动回调,并传入人脸匹配结果re。
- //re:为一个数组,当数组元素个数为0时,表示未匹配到任何相似的人员;否则表示匹配到人脸,其元素数据为{"idcard":"xxxx","core":"0.8723"}
- function faceMatchResult(re) {
- alert(re);
- window.external.StopFace();
- re = JSON.parse(re);
- if (re.length == 0) {
- alert("该人员匹配失败,请切换其他登录方式");
- }
- else {
- var face1 = re[0];
- if (face1.core < 0.5) {
- alert("该人员匹配度较低(" + face1.core + "),请切换其他登录方式");
- }
- else {
- var userid = face1.idcard;//身份证号
- alert(userid);
- //code:自动登录或者其他业务逻辑
- //exmp:
- document.getElementById("page1").style.display = "none";
- document.getElementById("page2").style.display = "";
- }
- }
- }
- function sign() {
- //签名面板参数,支持linewidth、color、w、h的设置,以上参数均非必需
- var panelPara = "";
- //参数实例:
- panelPara = "{\"linewidth\":2,\"color\":\"black\",\"w\":200,\"h\":100}";
- window.external.OpenHandSign(panelPara,"dealSign");
- }
- //签名回调函数,名称与OpenHandSign方法的第二个参数相同。
- //signImageBase64Str:签名的图片编码,不带标识头,如有需要自行添加
- function dealSign(signImageBase64Str) {
- //alert(signImageBase64Str);
- document.getElementById("signImg").src = "data:image/png;base64," + signImageBase64Str;
- }
- function start_voice() {
- window.external.start_voice();
- }
- </script>
|