Advertisement
Guest User

Untitled

a guest
Nov 15th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. $(document).ready(function () {
  2. webSocketConnect(15);
  3. })
  4.  
  5. function connection() {
  6. webSocketConnect(1);
  7. }
  8.  
  9. function previewVideoFromBlob(blob, channelNumber) {
  10. let imageUrl = URL.createObjectURL(blob)
  11. let channelNumberTag = '#imageVideo' + channelNumber
  12. let imageElement = $(channelNumberTag)
  13. let lastUrl = imageElement.attr("src")
  14. imageElement.attr("src", imageUrl)
  15. URL.revokeObjectURL(lastUrl)
  16. }
  17.  
  18.  
  19. function webSocketConnect(channelsCount) {
  20. let serverUrl = "wss://192.168.100.63:18080/channelsvideotest?login=root";
  21. var socket = new WebSocket(serverUrl)
  22. socket.binaryType = 'arraybuffer';
  23. socket.onmessage = function (response) {
  24. console.log(response.data)
  25. // handleResponse(response.data)
  26. }
  27. socket.onopen = function () {
  28. for (i = 0; i < channelsCount; i++) {
  29. socket.send("{}")
  30. console.log("sended {}")
  31. }
  32. }
  33. socket.onclose = function() {
  34. console.log("Closed")
  35. }
  36. }
  37.  
  38. function handleResponse(data) {
  39.  
  40. uint8Array = new Uint8Array(data)
  41. console.log(uint8Array)
  42. handleChannelNumberAndFrame(uint8Array)
  43. }
  44.  
  45. function handleChannelNumberAndFrame(buffer) {
  46. var j = 0
  47. for (var i = 0; i < buffer.length; i++) {
  48. if (buffer[i] == 255) {
  49. j = i
  50. break
  51. }
  52. }
  53. let frameBytes = new Uint8Array(mySlice(buffer, j, buffer.length))
  54. let channelNumberBytes = mySlice(buffer, 0, j)
  55. let blob = new Blob([frameBytes.buffer])
  56. let channelNumber = byteArrayToInt(channelNumberBytes)
  57. previewVideoFromBlob(blob, channelNumber)
  58. }
  59.  
  60. function byteArrayToInt(byteArray) {
  61. var value = 0;
  62. for (var i = byteArray.length - 1; i >= 0; i--) {
  63. value = (value * 256) + byteArray[i];
  64. }
  65.  
  66. return value;
  67. }
  68.  
  69. function mySlice(array, begin, end) {
  70.  
  71. // Массивоподобные объекты мы обрабатываем самостоятельно
  72. var i, cloned = [],
  73. size, len = array.length;
  74.  
  75. // Обрабатываем отрицательное значение begin
  76. var start = begin || 0;
  77. start = (start >= 0) ? start : len + start;
  78.  
  79. // Обрабатываем отрицательное значение end
  80. var upTo = (end) ? end : len;
  81. if (end < 0) {
  82. upTo = len + end;
  83. }
  84.  
  85. // Фактически ожидаемый размер среза
  86. size = upTo - start;
  87.  
  88. if (size > 0) {
  89. cloned = new Array(size);
  90. if (array.charAt) {
  91. for (i = 0; i < size; i++) {
  92. cloned[i] = array.charAt(start + i);
  93. }
  94. } else {
  95. for (i = 0; i < size; i++) {
  96. cloned[i] = array[start + i];
  97. }
  98. }
  99. }
  100.  
  101. return cloned;
  102. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement