diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart index 4889415c..337787c2 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_logic.dart @@ -3,7 +3,6 @@ import 'dart:math'; import 'package:flutter/services.dart'; import 'package:flutter_voice_processor/flutter_voice_processor.dart'; -import 'package:fluttertoast/fluttertoast.dart'; import 'package:get/get.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:star_lock/talk/call/callTalk.dart'; diff --git a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart index ce9d6c97..c5318826 100644 --- a/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart +++ b/star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart @@ -40,16 +40,23 @@ class _LockMonitoringPageState extends State { height: 1.sh, child: Stack( children: [ - Obx(() => state.listPhotoData.value.isEmpty - ? Container(color: Colors.transparent) - : Image.memory( - state.listPhotoData.value, - // key: ValueKey(state.listData.value.hashCode), - gaplessPlayback: true, - width: 1.sw, - height: 1.sh, - fit: BoxFit.cover, - )), + Obx(() { + if (state.listPhotoData.value.isEmpty || + state.listPhotoData.value.length < 10) { + return Container(color: Colors.transparent); + } else { + return Image.memory( + state.listPhotoData.value, + gaplessPlayback: true, + width: 1.sw, + height: 1.sh, + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) { + return Container(color: Colors.transparent); + }, + ); + } + }), Positioned( top: ScreenUtil().statusBarHeight + 30.h, width: 1.sw, diff --git a/star_lock/lib/talk/call/callTalk.dart b/star_lock/lib/talk/call/callTalk.dart index f1844799..69f17cad 100644 --- a/star_lock/lib/talk/call/callTalk.dart +++ b/star_lock/lib/talk/call/callTalk.dart @@ -71,12 +71,7 @@ class CallTalk { // print('获取帧序号 getIframeIndex:$getIframeIndex'); // 获取帧长度 65 - // int alen = bb[POS_alen] & 0xff; - // var alenList = bb.sublist(POS_alen, POS_alen + 4); - // int alen = ((0xff & alenList[(0)]) << 24 | - // (0xff & alenList[1]) << 16 | - // (0xff & alenList[2]) << 8 | - // (0xFF & alenList[3])); + int alen = bb[POS_alen] + bb[POS_alen + 1] * 256; // print('获取帧长度 alen:$alen'); // 当前包号 71 @@ -94,7 +89,7 @@ class CallTalk { iframe = IframeInfo(); iframe!.iframeIndex = getIframeIndex; iframe!.bagNum = getBagNum; - // iframe!.cur_len = alen; + iframe!.cur_len = alen; iframe!.bb = []; // growableList = iframe!.bb!.toList(growable: true); } @@ -107,12 +102,14 @@ class CallTalk { iframe!.bb!.addAll(getList); } // print( - // 'iframe.bagNum: ${iframe!.bagNum} iframe.bagReceive: ${iframe!.bagReceive}'); + // 'iframe.bagNum: ${iframe!.bagNum} iframe.bagReceive: ${iframe!.bagReceive}'); // 如果收到的包数等于总包数,说明这一帧数据已经接收完毕 if (iframe!.bagNum == iframe!.bagReceive && + iframe!.bagReceive == getBagNum && getIframeIndex == iframe!.iframeIndex) { // print('播放第${iframe!.iframeIndex}帧 一帧图片的hexStringData: ${Uint8List.fromList(growableList)}'); + // print('得到的一张图片的数据长度为${iframe!.bb!.length}'); eventBus.fire(GetTVDataRefreshUI(iframe!.bb!)); } else { // print('接收到的包数不等于总包数');