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