Demo.html 7.7 KB

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