huangxiaojing пре 4 година
родитељ
комит
778b977b9c
3 измењених фајлова са 33 додато и 32 уклоњено
  1. 16 1
      screenIos/WXtrialInterface.html
  2. 1 25
      screenIos/decoder.js
  3. 16 6
      screenIos/websocket.js

+ 16 - 1
screenIos/WXtrialInterface.html

@@ -427,7 +427,6 @@
 				case 1:
 					webglPlayer.renderFrame(objData.data, 720, 1280, 720 * 1280, (720 / 2) * (1280 / 2));
 			}
-
 		}
 
 		var isFinish = false;
@@ -455,10 +454,26 @@
 			var input = event.data;
 			if (input[0] == 0xff) {
 				decodeAAC(input);
+			}
+			if (event.data === 'start') {
 				$('.weui-mask_transparent').hide()
 				$('.weui-toast').hide()
 				$('.loading').hide()
 			}
+			if (event.data === 'close') {
+				$.confirm({
+					title: '提示',
+					text: '连接断开,是否准备重连?',
+					onOK: function () {
+						webSocketWorker.postMessage('restart');
+					},
+					onCancel: function () {
+						wx.miniProgram.switchTab({
+							url: '/pages/home/home'
+						})
+					}
+				});
+			}
 		}
 
 		function Close() { // webworker 关闭,清理

+ 1 - 25
screenIos/decoder.js

@@ -28,30 +28,6 @@ function PrintfLog(str) {
 	self.postMessage(objData);
 }
 
-function decodeAAC(data) {
-	var retPtr = Module._malloc(4 * 5 * 1024); //接收的数据
-	var inputPtr = Module._malloc(4 * data.length); //输入数据
-
-	for (var i = 0; i < data.length; i++) {
-		Module.HEAPU8[(inputPtr) + i] = data[i]; //转换为堆数据
-	}
-
-	var pcmLen = Module._feedData(retPtr, inputPtr, data.length);
-
-	if (pcmLen > 0) {
-		var pcmData = new Uint8Array(pcmLen);
-		for (i = 0; i < pcmLen; i++) {
-			pcmData[i] = Module.HEAPU8[(retPtr) + i]
-		}
-
-		player.feed(pcmData);
-	}
-
-	decodeCount++;
-	Module._free(inputPtr);
-	Module._free(retPtr);
-}
-
 setInterval(
 	function () {
 		if (h264Queue.length > 0 && isFinish) {
@@ -93,7 +69,7 @@ function decodeH264(data) {
 	}
 
 	var yuvData = new Uint8Array(2457600);
-	for (i = 0; i < yuvData.length; i++) {
+	for (var i = 0; i < yuvData.length; i++) {
 		yuvData[i] = Module.HEAPU8[(retPtr) + i];
 	}
 

+ 16 - 6
screenIos/websocket.js

@@ -9,9 +9,12 @@ function doConnect() {
 	var ws = new WebSocket(socketURL);
 	ws.binaryType = 'arraybuffer';
 
-	ws.onclose = function (e) {
-		alert("websocket连接断开,准备重连");
-		doConnect();
+	ws.onclose = function () {
+		self.postMessage('close');
+	}
+
+	ws.onerror = function () {
+		self.postMessage('close');
 	}
 
 	ws.addEventListener('open', function (event) {
@@ -20,18 +23,25 @@ function doConnect() {
 		ws.send(buffer);
 	});
 
-	self.addEventListener('message', function (e) {
-		ws.send(e.data);
-	}, false);
 	ws.addEventListener('message', function (event) {
 		var input = new Uint8Array(event.data);
 
 		if (input[0] == 0xff) {
 			self.postMessage(input);
+			self.postMessage('start');
 		} else {
 			self.postMessage(input);
+			self.postMessage('start');
 		}
 	});
+
+	self.addEventListener('message', function (e) {
+		if (e.data === 'restart') {
+			doConnect();
+			return
+		}
+		ws.send(e.data);
+	}, false);
 }
 
 function GetRequest() {