Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $(document).ready(function () {
- webSocketConnect(15);
- })
- function connection() {
- webSocketConnect(1);
- }
- function previewVideoFromBlob(blob, channelNumber) {
- let imageUrl = URL.createObjectURL(blob)
- let channelNumberTag = '#imageVideo' + channelNumber
- let imageElement = $(channelNumberTag)
- let lastUrl = imageElement.attr("src")
- imageElement.attr("src", imageUrl)
- URL.revokeObjectURL(lastUrl)
- }
- function webSocketConnect(channelsCount) {
- let serverUrl = "wss://192.168.100.63:18080/channelsvideotest?login=root";
- var socket = new WebSocket(serverUrl)
- socket.binaryType = 'arraybuffer';
- socket.onmessage = function (response) {
- console.log(response.data)
- // handleResponse(response.data)
- }
- socket.onopen = function () {
- for (i = 0; i < channelsCount; i++) {
- socket.send("{}")
- console.log("sended {}")
- }
- }
- socket.onclose = function() {
- console.log("Closed")
- }
- }
- function handleResponse(data) {
- uint8Array = new Uint8Array(data)
- console.log(uint8Array)
- handleChannelNumberAndFrame(uint8Array)
- }
- function handleChannelNumberAndFrame(buffer) {
- var j = 0
- for (var i = 0; i < buffer.length; i++) {
- if (buffer[i] == 255) {
- j = i
- break
- }
- }
- let frameBytes = new Uint8Array(mySlice(buffer, j, buffer.length))
- let channelNumberBytes = mySlice(buffer, 0, j)
- let blob = new Blob([frameBytes.buffer])
- let channelNumber = byteArrayToInt(channelNumberBytes)
- previewVideoFromBlob(blob, channelNumber)
- }
- function byteArrayToInt(byteArray) {
- var value = 0;
- for (var i = byteArray.length - 1; i >= 0; i--) {
- value = (value * 256) + byteArray[i];
- }
- return value;
- }
- function mySlice(array, begin, end) {
- // Массивоподобные объекты мы обрабатываем самостоятельно
- var i, cloned = [],
- size, len = array.length;
- // Обрабатываем отрицательное значение begin
- var start = begin || 0;
- start = (start >= 0) ? start : len + start;
- // Обрабатываем отрицательное значение end
- var upTo = (end) ? end : len;
- if (end < 0) {
- upTo = len + end;
- }
- // Фактически ожидаемый размер среза
- size = upTo - start;
- if (size > 0) {
- cloned = new Array(size);
- if (array.charAt) {
- for (i = 0; i < size; i++) {
- cloned[i] = array.charAt(start + i);
- }
- } else {
- for (i = 0; i < size; i++) {
- cloned[i] = array[start + i];
- }
- }
- }
- return cloned;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement