123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <html>
- <head>
- <link rel="shortcut icon" href="#">
- </head>
- <!-- <canvas id="playCanvas" width="450" height="800"></canvas> -->
- <body oncontextmenu="Back()">
- <canvas id="playCanvas" width="450" height="800"></canvas>
- </body>
- <script type="text/javascript" src="helper.js"></script>
- <script type="text/javascript" src="pcm-player.js" ></script>
- <script type="text/javascript" src="webgl.js"></script>
- <script src="https://cdn.bootcss.com/vConsole/3.2.0/vconsole.min.js"></script>
- <script>
- var decodeWoker = new Worker('decoder.js');
- var myVideo = document.getElementById("playCanvas");
- decodeWoker.onmessage = function(event) {
- console.log("decodeWoker.onmessage")
- var objData = event.data;
- switch (objData.cmd) {
- case 0:
- console.log(objData.data);
- break;
- case 1:
- var time = new Date().getTime();
- webglPlayer.renderFrame(objData.data, 720, 1280, 720 * 1280, (720 / 2) * (1280 / 2));
- //console.log("渲染耗时", new Date().getTime() - time + "ms");break;
- }
- }
- let vConsole = new VConsole();
- if (typeof(Worker) !== "undefined") {
- console.log("支持webworker");
- } else {
- alert("不支持webworker");
- }
- var isFinish = false;
- this.canvas = document.getElementById("playCanvas");
- var webglPlayer = new WebGLPlayer(this.canvas, {
- preserveDrawingBuffer: false
- });
- var webSocketWorker = new Worker('websocket.js');
- var startTime = new Date().getTime();
- webSocketWorker.onmessage = function(event) {
- console.log("event.data", event.data)
- decodeWoker.postMessage(event.data);
- }
- document.addEventListener("visibilitychange", () => {
- if (document.visibilityState == "visible") {
- } else {
- console.log("页面不可见");
- }
- });
- function Close() //webworker 关闭,清理
- {
- var cmd = {
- cmd: 0
- };
- decodeWoker.postMessage(cmd);
- decodeWoker.terminate();
- webSocketWorker.postMessage(cmd);
- webSocketWorker.terminate();
- }
- myVideo.onmousedown = function(event) {
- console.log("22222")
- //放在此处只是为了方便演示,实际使用中查找横竖屏只要刚连接上时调用一次就好。
- //var checkBuffer = GetScreenState();
- //ws.send(checkBuffer);
- /*if(!isFeed)
- {
- console.log("重新申请I帧");
- requestTime = new Date().getTime();
- var buffer = RequestIFrame();
- ws.send(buffer);
- }*/
- //console.log("报文 %s", PrintArry(buffer));
- if (event.button == 0) {
- var posX = event.offsetX * 1080 * 1.0 / myVideo.clientWidth;
- var posY = event.offsetY * 1920 * 1.0 / myVideo.clientHeight;
- var buffer = ExexuteMouseDown(posX.toString(), posY.toString());
- // ws.send(buffer);
- // decodeWoker.postMessage(event.data);
- console.log("打印buffer", PrintArry(buffer))
- decodeWoker.postMessage(buffer);
- isDrag = true;
- }
- }
- </script>
- </html>
|