index.html 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <html>
  2. <head>
  3. <link rel="shortcut icon" href="#">
  4. </head>
  5. <!-- <canvas id="playCanvas" width="450" height="800"></canvas> -->
  6. <body oncontextmenu="Back()">
  7. <canvas id="playCanvas" width="450" height="800"></canvas>
  8. </body>
  9. <script type="text/javascript" src="helper.js">
  10. < script type = "text/javascript"
  11. src = "pcm-player.js" >
  12. </script>
  13. <script type="text/javascript" src="webgl.js"></script>
  14. <script src="https://cdn.bootcss.com/vConsole/3.2.0/vconsole.min.js"></script>
  15. <script>
  16. var decodeWoker = new Worker('decoder.js');
  17. var myVideo = document.getElementById("playCanvas");
  18. decodeWoker.onmessage = function(event) {
  19. console.log("decodeWoker.onmessage")
  20. var objData = event.data;
  21. switch (objData.cmd) {
  22. case 0:
  23. console.log(objData.data);
  24. break;
  25. case 1:
  26. var time = new Date().getTime();
  27. webglPlayer.renderFrame(objData.data, 720, 1280, 720 * 1280, (720 / 2) * (1280 / 2));
  28. //console.log("渲染耗时", new Date().getTime() - time + "ms");break;
  29. }
  30. }
  31. let vConsole = new VConsole();
  32. if (typeof(Worker) !== "undefined") {
  33. console.log("支持webworker");
  34. } else {
  35. alert("不支持webworker");
  36. }
  37. var isFinish = false;
  38. this.canvas = document.getElementById("playCanvas");
  39. var webglPlayer = new WebGLPlayer(this.canvas, {
  40. preserveDrawingBuffer: false
  41. });
  42. var webSocketWorker = new Worker('websocket.js');
  43. var startTime = new Date().getTime();
  44. webSocketWorker.onmessage = function(event) {
  45. console.log("event.data", event.data)
  46. decodeWoker.postMessage(event.data);
  47. }
  48. document.addEventListener("visibilitychange", () => {
  49. if (document.visibilityState == "visible") {
  50. } else {
  51. console.log("页面不可见");
  52. }
  53. });
  54. function Close() //webworker 关闭,清理
  55. {
  56. var cmd = {
  57. cmd: 0
  58. };
  59. decodeWoker.postMessage(cmd);
  60. decodeWoker.terminate();
  61. webSocketWorker.postMessage(cmd);
  62. webSocketWorker.terminate();
  63. }
  64. myVideo.onmousedown = function(event) {
  65. console.log("22222")
  66. //放在此处只是为了方便演示,实际使用中查找横竖屏只要刚连接上时调用一次就好。
  67. //var checkBuffer = GetScreenState();
  68. //ws.send(checkBuffer);
  69. /*if(!isFeed)
  70. {
  71. console.log("重新申请I帧");
  72. requestTime = new Date().getTime();
  73. var buffer = RequestIFrame();
  74. ws.send(buffer);
  75. }*/
  76. //console.log("报文 %s", PrintArry(buffer));
  77. if (event.button == 0) {
  78. var posX = event.offsetX * 1080 * 1.0 / myVideo.clientWidth;
  79. var posY = event.offsetY * 1920 * 1.0 / myVideo.clientHeight;
  80. var buffer = ExexuteMouseDown(posX.toString(), posY.toString());
  81. // ws.send(buffer);
  82. // decodeWoker.postMessage(event.data);
  83. console.log("打印buffer", PrintArry(buffer))
  84. decodeWoker.postMessage(buffer);
  85. isDrag = true;
  86. }
  87. }
  88. </script>
  89. </html>