diff --git a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/AndroidScreenResponseThread.java b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/AndroidScreenResponseThread.java index a6aecbb..b7e7fd4 100644 --- a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/AndroidScreenResponseThread.java +++ b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/AndroidScreenResponseThread.java @@ -23,8 +23,6 @@ public class AndroidScreenResponseThread extends ImageScreenResponse { private AdbDevice adbDevice; - private byte[] lastData; - private final Logger logger = LoggerFactory.getLogger(AndroidScreenResponseThread.class); public AndroidScreenResponseThread(AdbDevice adbDevice) { @@ -107,7 +105,7 @@ public class AndroidScreenResponseThread extends ImageScreenResponse { } //录屏 if (null != screenRecorder) { - screenRecorder.addImgToVideo(screenPicContent); + screenRecorder.addImgToVideo(this.lastData); } //有后端会话则给后端推送屏幕图片 if (!CollectionUtils.isEmpty(webSessions)) { @@ -120,7 +118,7 @@ public class AndroidScreenResponseThread extends ImageScreenResponse { sendDeviceStatus = false; } logger.info("设备【{}】发送图片到微服务:{}张",adbDevice.getSerial(),send++); - SessionUtils.sendBinary(webSession, screenPicContent); + SessionUtils.sendBinary(webSession, this.lastData); logger.info("设备【{}】发送图片到微服务完成:{}张",adbDevice.getSerial(),send); } else { logger.warn("推送到web端的session已经断开,sessionId:{}",webSession.getId()); diff --git a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/ImageScreenResponse.java b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/ImageScreenResponse.java index e67e638..a855ce8 100644 --- a/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/ImageScreenResponse.java +++ b/cctp-atu/atu-upper-computer/src/main/java/net/northking/cctp/upperComputer/deviceManager/screen/ImageScreenResponse.java @@ -32,6 +32,8 @@ public abstract class ImageScreenResponse extends Thread{ protected CatchParam catchParam; + protected byte[] lastData; + public void setCatchParam(CatchParam catchParam) { this.catchParam = catchParam; } @@ -83,7 +85,17 @@ public abstract class ImageScreenResponse extends Thread{ Map messageMap = new HashMap<>(); messageMap.put(ResponseCmd.DeviceStatus.STATUS, ResponseCmd.DeviceStatus.CONNECTING); SessionUtils.sendMessageInitiative(session, ResponseCmd.DEVICE_STATUS, deviceId, messageMap, "设备掉线了"); - this.sendDeviceStatus = true; + logger.info("发送设备【{}】最后一张图片到前端..............",deviceId); + if (null != this.lastData) { + Map result = new HashMap<>(); + result.put(ResponseCmd.DeviceStatus.STATUS, ResponseCmd.DeviceStatus.CONNECTED); + SessionUtils.sendMessageInitiative(session, ResponseCmd.DEVICE_STATUS, deviceId, result, "设备已连接"); + SessionUtils.sendBinary(session, this.lastData); + } else { + logger.info("发送设备【{}】最后一张图片是空,获取到了再发..............",deviceId); + this.sendDeviceStatus = true; + } + } public void setSendDeviceStatus(boolean sendDeviceStatus) {