websocket.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. var videoPacketNum = 0;//
  2. var hasPPS = false;
  3. self.importScripts("helper.js");
  4. // self.importScripts("pcm-player.js");
  5. // self.importScripts("pcm-player.min.js");
  6. // var socketURL = "ws://192.168.198.21:9101";
  7. var socketURL = "ws://14.215.128.97:15508"
  8. // var socketURL = "14.215.128.98:14102";
  9. // var socketURL = "ws://14.215.128.98:14102"
  10. // socketURL = "ws://127.0.0.1:8081"
  11. var ws = new WebSocket(socketURL);
  12. ws.binaryType = 'arraybuffer';
  13. ws.addEventListener('open', function(event) {
  14. console.log("发送配置帧");
  15. ws.send(ConfigChannel("RK3923C1201900139"));
  16. });
  17. self.addEventListener('message', function(e) {
  18. //console.log("收到数据", e.data);
  19. console.log('ws', ws);
  20. ws.send(e.data);
  21. }, false);
  22. ws.addEventListener('message', function(event) {
  23. //var objData = {type:0, data:input};
  24. var input = new Uint8Array(event.data);
  25. if(input[0] == 0 && input[1] == 0 && input[2] == 0 && input[3] == 1)
  26. {
  27. var nalType = input[4] & 0x1f;
  28. if(nalType == 0x05 || nalType == 0x05 || nalType == 0x07)
  29. {
  30. console.log("收到I 帧");
  31. self.postMessage(input);
  32. hasPPS = true;
  33. }
  34. if(!hasPPS)//请求I 帧
  35. {
  36. videoPacketNum++;
  37. if(videoPacketNum > 5 && !hasPPS)
  38. {
  39. console.log("packetnum 编号" + videoPacketNum);
  40. videoPacketNum = 0;
  41. ws.send(RequestIFrame("RK3923C1201900139"));
  42. hasPPS = true;
  43. }
  44. }
  45. else
  46. {
  47. self.postMessage(input);
  48. }
  49. }
  50. else //音频
  51. {
  52. self.postMessage(input);
  53. }
  54. });