Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 拍摄视频快照时颤振中的图像尺寸无效_Image_Flutter_Dart_Video - Fatal编程技术网

Image 拍摄视频快照时颤振中的图像尺寸无效

Image 拍摄视频快照时颤振中的图像尺寸无效,image,flutter,dart,video,Image,Flutter,Dart,Video,我有一个Flitter应用程序,它可以从ESP32摄像机中播放视频。我感兴趣的代码应该是图像的快照。然而,当我按下按钮时,我得到下面的错误 我已尝试更改代码中的分辨率,以及发送流的摄影机上的分辨率。两人都给了我同样的错误 有人能帮我吗 E/flutter (22722): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Exception: Invalid image dimensions. E/flutter

我有一个Flitter应用程序,它可以从ESP32摄像机中播放视频。我感兴趣的代码应该是图像的快照。然而,当我按下按钮时,我得到下面的错误

我已尝试更改代码中的分辨率,以及发送流的摄影机上的分辨率。两人都给了我同样的错误

有人能帮我吗

E/flutter (22722): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: Exception: Invalid image dimensions.
E/flutter (22722): #0      Scene.toImage (dart:ui/compositing.dart:28:7)
E/flutter (22722): #1      OffsetLayer.toImage (package:flutter/src/rendering/layer.dart:1208:26)
E/flutter (22722): #2      RenderRepaintBoundary.toImage (package:flutter/src/rendering/proxy_box.dart:2960:24)
E/flutter (22722): #3      _HomeState.takeScreenShot (package:traincam/main.dart:173:32)
E/flutter (22722): #4      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19)
E/flutter (22722): #5      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1111:38)
E/flutter (22722): #6      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:183:24)
E/flutter (22722): #7      TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:598:11)
E/flutter (22722): #8      BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:287:5)
E/flutter (22722): #9      BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:222:7)
E/flutter (22722): #10     PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:476:9)
E/flutter (22722): #11     PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:77:12)
E/flutter (22722): #12     PointerRouter._dispatchEventToRoutes.<anonymous closure> (package:flutter/src/gestures/pointer_router.dart:122:9)
E/flutter (22722): #13     _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8)
E/flutter (22722): #14     PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18)
E/flutter (22722): #15     PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7)
E/flutter (22722): #16     GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:358:19)
E/flutter (22722): #17     GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:338:22)
E/flutter (22722): #18     RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:267:11)
E/flutter (22722): #19     GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:295:7)
E/flutter (22722): #20     GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:240:7)
E/flutter (22722): #21     GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:213:7)
E/flutter (22722): #22     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter (22722): #23     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter (22722): #24     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter (22722): #25     _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter (22722): #26     _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)
E/flatter(22722):[错误:flatter/lib/ui/ui\u dart\u state.cc(177)]未处理的异常:异常:无效的图像尺寸。
E/flatter(22722):#0 Scene.toImage(dart:ui/合成。dart:28:7)
E/flatter(22722):#1 OffsetLayer.toImage(包:flatter/src/rendering/layer.dart:1208:26)
E/flatter(22722):#2 renderpaintboundary.toImage(包:flatter/src/rendering/proxy_box.dart:2960:24)
E/flatter(22722):#3 35; HomeState.take截图(包装:traincam/main.dart:173:32)
E/颤振(22722):#4(InkResponse Estate.)(handleTap)(包装:颤振/src/材料/墨水(well.省道:993:19)
E/颤振(22722):#5#InkResponse.build。(包装:颤振/src/材料/墨水井。省道:1111:38)
E/flatter(22722):#6手势识别器.invokeCallback(包:flatter/src/signatures/recognizer.dart:183:24)
E/颤振(22722):#7 TapGestureRecognitor.handleTapUp(包:颤振/src/手势/tap.dart:598:11)
E/颤振(22722):#8基本手势识别器。#检查(包装:颤振/src/手势/tap.省道:287:5)
E/flatter(22722):#9 BaseTapgestureRecognitor.handlePrimaryPointer(包:flatter/src/signatures/tap.dart:222:7)
E/颤振(22722):#10 PrimaryPointerTestureRecognizer.handleEvent(包装:颤振/src/手势/识别器。省道:476:9)
E/flatter(22722):#11点外部程序。#调度(包:flatter/src/signatures/pointer_router。dart:77:12)
E/颤振(22722):#12点外部。#调度事件路线。(包装:颤振/src/signatures/pointer_router.省道:122:9)
E/flatter(22722):#13 LinkedHashMapMixin.forEach(dart:collection patch/compact_hash.dart:377:8)
E/flatter(22722):#14点外部。#调度事件路由(包:flatter/src/signatures/pointer#路由器。dart:120:18)
E/flatter(22722):#15 PointerRouter.route(包:flatter/src/signatures/pointer_router.dart:106:7)
E/flatter(22722):#16 GestureBinding.handleEvent(包:flatter/src/signatures/binding.dart:358:19)
E/flatter(22722):#17 GestureBinding.dispatchEvent(包:flatter/src/signatures/binding.dart:338:22)
E/flatter(22722):#18 renderbinding.dispatchEvent(包:flatter/src/rendering/binding.dart:267:11)
电子/颤振(22722):#19手势绑定。#手持指针事件(包装:颤振/src/手势/绑定。省道:295:7)
E/flatter(22722):#20个手势绑定。(u flushPointerEventQueue(包装:flatter/src/signatures/binding.dart:240:7)
电子/颤振(22722):#21手势绑定。"手持指针数据包(包:颤振/src/手势/binding.dart:213:7)
E/flatter(22722):#22 rootrunnary(dart:async/zone.dart:1206:13)
E/flatter(22722):#23 _CustomZone.runUnary(dart:async/zone.dart:1100:19)
E/flatter(22722):#24 _CustomZone.runUnaryGuarded(dart:async/zone.dart:1005:7)
E/颤振(22722):#25 _调用1(省道:ui/挂钩。省道:265:10)
E/flatter(22722):#26 dispatchPointerDataPacket(dart:ui/hooks.dart:174:5)
代码如下:

导入“dart:ui”;
进口“包装:颤振/cupertino.dart”;
进口“包装:颤振/材料.省道”;
导入“package:flatter/rendering.dart”;
进口“包装:fluttoast/fluttoast.dart”;
导入“包:手势缩放框/手势缩放框.dart”;
导入“package:web_socket_channel/io.dart”;
导入“package:web_socket_channel/web_socket_channel.dart”;
导入“package:save_in_gallery/save_in_gallery.dart”;
void main(){
runApp(MyApp());
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
debugShowCheckedModeBanner:false,
主题:ThemeData.dark(),
标题:“火车凸轮”,
家:家(
频道:IOWebSocketChannel.connect('ws://192.168.1.213:8888'),
)
);
}
}
类Home扩展了StatefulWidget{
最终WebSocketChannel通道;
Home({Key Key,@required this.channel}):super(Key:Key);
@凌驾
_HomeState createState()=>\u HomeState();
}
类(HomeState扩展状态){
最终视频宽度=640;
最终视频高度=480;
双新视频尺寸宽度=640;
双倍新视频尺寸高度=480;
布尔岛景观=假;
字符串_timeString;
var_globalKey=新的globalKey();
最终_imageSaver=imageSaver();
@凌驾
void initState(){
super.initState();
isLandscape=false;
}
@凌驾
无效处置(){
widget.channel.sink.close();
super.dispose();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
body:OrientationBuilder(
生成器:(上下文、方向){
var screenWidth=MediaQuery.of(context).size.width;
var screenHeight=MediaQuery.of(context).size.height;
如果(方向==方向.纵向){
//屏幕宽度<屏幕高度
isLandscape=false;
新视频尺寸=
屏幕宽度>视频宽度?视频宽度:屏幕宽度;
新尺寸=
视频高度*新视频尺寸高度/屏幕宽度;
}
否则{
isLandscape=true;
新尺寸=
屏幕高度>视频高度?视频高度:屏幕高度;
新视频尺寸=
videoWidth*新的VideoSizeHeight/videoHeight;
}
返回容器(
颜色:颜色,黑色,
孩子:StreamBuilder(
流:widget.channel.stream,
生成器:(上下文,快照){
Widget carIconImage =
              Image.asset(BYDConstants().getBydImageHome("box.png"));
Widget carIconImage =
                    Container(width:30,height:30,child: Image.asset(BYDConstants().getBydImageHome("box.png")),);