DemoIE.html 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <!DOCTYPE html>
  2. <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>Demo</title>
  6. <style>
  7. a {
  8. margin:20px;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <div>这是一个测试页面</div>
  14. <div id="page1">
  15. <a id="start" href="javascript:faceLogin()">人脸登录</a>
  16. <a id="sign" href="javascript:sign()">手写签名</a>
  17. <img id="signImg" src=""/>
  18. </div>
  19. <div id="page2" style="display:''">
  20. <div>
  21. <a href="javascript:faceLogin()">人脸登录</a>
  22. <a id="start" href="javascript:init()">初始化设备</a>
  23. <a id="start" href="javascript:start()">开始录像</a>
  24. <a id="stop" href="javascript:stop()">停止录像</a>
  25. <a id="play" href="javascript:play()">播放录像</a>
  26. <a id="upload" href="javascript:upload()">上传录像</a>
  27. <a id="start" href="javascript:setVideoTime()">设置60秒时长(默认为30秒)</a>
  28. 分辩率:<select id="wh" onchange="changeWH(this)"></select>
  29. 视频速率:<select id="fps" onchange="changeFps(this)">
  30. <option>10</option>
  31. <option>11</option>
  32. </select>(先设置此值后再开始录像)
  33. </div>
  34. <div>
  35. <a id="start" href="javascript:start_voice()">语音求助</a>
  36. </div>
  37. <div>
  38. <a id="start" href="javascript:window.external.PreviewPdf('new_45567961661964288.pdf',0,0,0,0)">PDF预览</a>
  39. <a id="start" href="javascript:window.external.ClosePreviewPdf()">关闭PDF预览</a>
  40. </div>
  41. <div id="hint"></div>
  42. <div>
  43. <video controls="controls" id="audio_id" autoplay="autoplay" src="http://39.108.150.108:9001/video_0001.mp4"></video>
  44. </div>
  45. </div>
  46. </body>
  47. </html>
  48. <script language="javascript">
  49. var hint = document.getElementById("hint");
  50. var recordTime = 30;
  51. var videoPath = "";
  52. var fpsEle = document.getElementById('fps');
  53. var fpsItems = [];
  54. for (var i = 9; i <= 30; i++) {
  55. fpsItems.push('<option>'+i+'</option>');
  56. }
  57. fpsEle.innerHTML = fpsItems.join('');
  58. function changeFps() {
  59. window.external.SetFps(fpsEle.value); //该速率在1280*720分辩率下正常,需要根据实际采用的分辩率调整该值
  60. }
  61. function setVideoTime() {
  62. recordTime = 60;
  63. window.external.setLong(recordTime);
  64. }
  65. function init() {
  66. var re = window.external.Init("0");
  67. }
  68. function start() {
  69. //if (windowEx.SetPix(640, 480) == 0) {
  70. // alert("无效的分辩率设置。");
  71. // return;
  72. //}
  73. hint.innerHTML = "正在启动录像设备...";
  74. //window.external.SetFps(25); //该速率在1280*720分辩率下正常,需要根据实际采用的分辩率调整该值
  75. window.external.button_start_Click("0002");
  76. hint.innerHTML = "正在录像中...";
  77. if(recordTime>0) checkResult();
  78. }
  79. function stop() {
  80. window.external.button_stop_Click();
  81. hint.innerHTML = "已停止录像...";
  82. }
  83. function play() {
  84. if (videoPath == '') {
  85. alert("未开始录制或录制还未完成。");
  86. return;
  87. }
  88. document.getElementById("audio_id").src= videoPath;
  89. }
  90. //视频录像结束的回调函数
  91. //path:视频文件的本地路径
  92. function RecordFinish(path)
  93. {
  94. videoPath = path;
  95. hint.innerHTML = path;
  96. }
  97. //判断是否录制结束
  98. function checkResult() {
  99. setTimeout(function () {
  100. recordTime--;
  101. if (recordTime <= 0) {
  102. //录制完成,获取本地文件路径
  103. videoPath = window.external.GetVideoLocalPath();
  104. hint.innerHTML = videoPath;
  105. }
  106. else {
  107. checkResult();
  108. }
  109. },1000)
  110. }
  111. function QueryVideoCapabilities(lst) {
  112. var lst = eval("(" + lst + ")");
  113. var wh = document.getElementById("wh");
  114. var tmpary = [];
  115. for (var i = 0; i < lst.length; i++) {
  116. tmpary.push("<option value="+i+">"+lst[i].w+" "+lst[i].h+"</option>");
  117. }
  118. wh.innerHTML = tmpary.join("");
  119. }
  120. function changeWH(e) {
  121. window.external.SetPixIndex(document.getElementById("wh").value);
  122. }
  123. //开始人脸识别
  124. function faceLogin() {
  125. window.external.StartFace(0);//30秒匹配时长,如果30秒都还未匹配到结果,则自动停止
  126. }
  127. //人脸匹配完成后,由网页容器自动回调,并传入人脸匹配结果re。
  128. //re:为一个数组,当数组元素个数为0时,表示未匹配到任何相似的人员;否则表示匹配到人脸,其元素数据为{"idcard":"xxxx","core":"0.8723"}
  129. function faceMatchResult(re) {
  130. alert(re);
  131. window.external.StopFace();
  132. re = JSON.parse(re);
  133. if (re.length == 0) {
  134. alert("该人员匹配失败,请切换其他登录方式");
  135. }
  136. else {
  137. var face1 = re[0];
  138. if (face1.core < 0.5) {
  139. alert("该人员匹配度较低(" + face1.core + "),请切换其他登录方式");
  140. }
  141. else {
  142. var userid = face1.idcard;//身份证号
  143. alert(userid);
  144. //code:自动登录或者其他业务逻辑
  145. //exmp:
  146. document.getElementById("page1").style.display = "none";
  147. document.getElementById("page2").style.display = "";
  148. }
  149. }
  150. }
  151. function sign() {
  152. //签名面板参数,支持linewidth、color、w、h的设置,以上参数均非必需
  153. var panelPara = "";
  154. //参数实例:
  155. panelPara = "{\"linewidth\":2,\"color\":\"black\",\"w\":200,\"h\":100}";
  156. window.external.OpenHandSign(panelPara,"dealSign");
  157. }
  158. //签名回调函数,名称与OpenHandSign方法的第二个参数相同。
  159. //signImageBase64Str:签名的图片编码,不带标识头,如有需要自行添加
  160. function dealSign(signImageBase64Str) {
  161. //alert(signImageBase64Str);
  162. document.getElementById("signImg").src = "data:image/png;base64," + signImageBase64Str;
  163. }
  164. function start_voice() {
  165. window.external.start_voice();
  166. }
  167. </script>