Demo.html 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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 style="text-align: center;">后台服务-开发接口</div>
  14. <div style="text-align: left;"><a href="javascript:windowEx.NewWin('http://127.0.0.1:9527/static/swagger/index.html',1024,768,'center')">查看</a></div>
  15. <div style="text-align: center;">JS开发接口</div>
  16. <div style="text-align: left;">JS-API调用说明</div>
  17. <div style="text-align: left;">
  18. <ul>
  19. <li>在任何支持js的html中,使用标准的js方式均可调用本地窗口所暴露出来的API。</li>
  20. <li>本地窗口已为js使用封装了公用对象,对象名称为:windowEx</li>
  21. <li>js调用实例:windowEx.方法名(参数列表),如:windowEx.setLong(1000)</li>
  22. </ul>
  23. </div>
  24. <div style="text-align: left;">窗口API</div>
  25. <div style="text-align: left;">
  26. <ul>
  27. <li>1、关闭窗口。API方法:windowEx.Close()</li>
  28. <li><a href="javascript:windowEx.Close()">立即测试</a></li>
  29. <li>2、最小化窗口。API方法:windowEx.Min()</li>
  30. <li><a href="javascript:windowEx.Min()">立即测试</a></li>
  31. <li>3、打开屏幕键盘。API方法:windowEx.ShowOsk()</li>
  32. <li><a href="javascript:windowEx.ShowOsk('0','0')">立即测试</a></li>
  33. <li>4、立即退出应用。API方法:windowEx.Exit()</li>
  34. <li><a href="javascript:windowEx.Exit()">立即测试</a></li>
  35. <li>5、日志打印并记录到日志文件中。API方法:windowEx.PrintLog(string txt)</li>
  36. <li><a href="javascript:windowEx.PrintLog('this is test log content!!!')">立即测试</a>JS代码:windowEx.PrintLog('this is test log')</li>
  37. <li>6、设置窗口大小。API方法:windowEx.Size(int w,int h)</li>
  38. <li><a href="javascript:windowEx.Size(600,400)">立即测试</a>JS代码:windowEx.Size(600,400)</li>
  39. <li>7、设置窗口位置。API方法:windowEx.Position(string code)。code支持:center(居中),right_bottom(右下角),right_top(右上角)</li>
  40. <li><a href="javascript:windowEx.Position('center')">立即测试</a>JS代码:windowEx.Size('center')</li>
  41. <li>8、新窗口。API方法:windowEx.NewWin(string url,int w,int h,string positioncode)。code支持:center(居中),right_bottom(右下角),right_top(右上角)</li>
  42. <li><a href="javascript:windowEx.NewWin('https://www.baidu.com',300,700,'right_bottom')">立即测试</a>JS代码:windowEx.NewWin('https://www.baidu.com',300,700,'right_bottom')</li>
  43. <li>9、【回调API】网络/服务器连接中断通知。方法定义:NetEventNotice(string msg)</li>
  44. <li>JS代码:function NetEventNotice(msg){}</li>
  45. </div>
  46. <div style="text-align: left;">音频播放API</div>
  47. <div style="text-align: left;">
  48. <ul>
  49. <li>立即播放声音。API方法:windowEx.Play(string ind,string filename)
  50. <br>
  51. 参数ind说明:0-4表示播放系统声音,此时filename参数传空即可。其中0为Asterisk提示音;1为Beep提示音;2为Exclamation提示音;3为Hand提示音;4为Question提示音。
  52. <br>
  53. 参数filename说明:播放的声音文件名称,仅支持mp3格式,播放时需要保证程序目录下声音文件已存在。ind为"9"时有效。
  54. </li>
  55. <li>ind="0"时的Asterisk提示音:<a href="javascript:windowEx.Play('0','')">立即测试</a>JS代码:windowEx.Play('0','')</li>
  56. <li>ind="1"时的Beep提示音:<a href="javascript:windowEx.Play('1','')">立即测试</a>JS代码:windowEx.Play('1','')</li>
  57. <li>ind="2"时的Exclamation提示音:<a href="javascript:windowEx.Play('2','')">立即测试</a>JS代码:windowEx.Play('2','')</li>
  58. <li>ind="3"时的Hand提示音:<a href="javascript:windowEx.Play('3','')">立即测试</a>JS代码:windowEx.Play('3','')</li>
  59. <li>ind="4"时的Question提示音:<a href="javascript:windowEx.Play('4','')">立即测试</a>JS代码:windowEx.Play('4','')</li>
  60. <li>ind="9"时的"登录成功"提示音:<a href="javascript:windowEx.Play('9','登录成功')">立即测试</a> JS代码:javascript:windowEx.Play('9','登录成功')</li>
  61. <li>ind="9"时的文字转语音播报:<a href="javascript:windowEx.Play('9','检测任务已完成')">立即测试</a> JS代码:javascript:windowEx.Play('9','检测任务已完成')</li>
  62. </ul>
  63. </div>
  64. <div style="text-align: left;">二维码API</div>
  65. <div style="text-align: left;">
  66. <ul>
  67. <li>1、开始扫码。API方法:windowEx.StartScanQrCode(callbackFuncName)</li>
  68. <li><a href="javascript:windowEx.StartScanQrCode('getQrCode')">立即测试</a><span id="qrCodeValue"></span></li>
  69. <li>2、停止扫码。API方法:windowEx.StopScanQrCode()</li>
  70. <li><a href="javascript:windowEx.StopScanQrCode()">立即测试</a></li>
  71. </ul>
  72. </div>
  73. <div style="text-align: left;">摄像头API</div>
  74. <div>
  75. <a id="start" href="javascript:init()">初始化设备</a>
  76. <a id="start" href="javascript:start()">开始录像</a>
  77. <a id="stop" href="javascript:stop()">停止录像</a>
  78. <a id="play" href="javascript:play()">播放录像</a>
  79. <a id="upload" href="javascript:upload()">上传录像</a>
  80. <a id="start" href="javascript:setVideoTime()">设置60秒时长(默认为30秒)</a>
  81. <select id="wh" onchange="changeWH(this)"></select>
  82. </div>
  83. <div id="hint"></div>
  84. <div><video id="audio_id" src=""></video></div>
  85. </body>
  86. </html>
  87. <script language="javascript">
  88. var hint = document.getElementById("hint");
  89. var recordTime = 30;
  90. var videoPath = "";
  91. function setVideoTime() {
  92. recordTime = 60;
  93. windowEx.setLong(recordTime);
  94. }
  95. function init() {
  96. var re = windowEx.Init("0");
  97. }
  98. function getQrCode(qrcodeStr){
  99. document.getElementById("qrCodeValue").innerHTML=qrcodeStr;
  100. }
  101. function NetEventNotice(msg){
  102. if(msg!="") alert(msg)
  103. }
  104. function start() {
  105. //if (windowEx.SetPix(640, 480) == 0) {
  106. // alert("无效的分辩率设置。");
  107. // return;
  108. //}
  109. hint.innerHTML = "正在启动录像设备...";
  110. windowEx.button_start_Click();
  111. hint.innerHTML = "正在录像中...";
  112. if(recordTime>0) checkResult();
  113. }
  114. function stop() {
  115. windowEx.button_stop_Click();
  116. hint.innerHTML = "已停止录像...";
  117. }
  118. function play() {
  119. if (videoPath == '') {
  120. alert("未开始录制或录制还未完成。");
  121. return;
  122. }
  123. document.getElementById("audio_id").src= videoPath;
  124. }
  125. //视频录像结束的回调函数
  126. //path:视频文件的本地路径
  127. function RecordFinish(path)
  128. {
  129. hint.innerHTML = path;
  130. }
  131. //判断是否录制结束
  132. function checkResult() {
  133. setTimeout(function () {
  134. recordTime--;
  135. if (recordTime <= 0) {
  136. //录制完成,获取本地文件路径
  137. videoPath = windowEx.GetVideoLocalPath();
  138. hint.innerHTML = videoPath;
  139. }
  140. else {
  141. checkResult();
  142. }
  143. },1000)
  144. }
  145. function QueryVideoCapabilities(lst) {
  146. var lst = eval("(" + lst + ")");
  147. var wh = document.getElementById("wh");
  148. var tmpary = [];
  149. for (var i = 0; i < lst.length; i++) {
  150. tmpary.push("<option value="+i+">"+lst[i].w+" "+lst[i].h+"</option>");
  151. }
  152. wh.innerHTML = tmpary.join("");
  153. }
  154. function changeWH(e) {
  155. windowEx.SetPixIndex(document.getElementById("wh").value);
  156. }
  157. </script>