Flutter中如何在暂停相机预览时模糊相机输出?
解决相机暂停预览时的模糊效果问题
修正后的代码
var pauseCamera = 0; CameraController? controller; // 来自camera包 ... GestureDetector( onTap: () { pauseCamera++; pauseCamera.isOdd ? controller!.pausePreview() : controller!.resumePreview(); }, child: pauseCamera.isOdd ? ClipRect( child: ImageFiltered( imageFilter: ImageFilter.blur( sigmaX: 5.0, sigmaY: 5.0, ), child: CameraView(), // 移除const关键字 ), ) : CameraView(), // 移除const关键字 ),
问题原因分析
你代码里的const CameraView()使用了const关键字,这会让Widget被标记为不可变的常量实例。当pauseCamera状态切换时,虽然外层的ImageFiltered会重建,但内部的const CameraView()不会重新创建,导致模糊滤镜无法正确作用在相机预览帧上。
另外,确保你的CameraView组件是直接基于CameraController渲染预览的(比如使用CameraPreview widget),这样在暂停预览后,最后一帧画面能被ImageFiltered正确捕获并应用模糊效果。
内容的提问来源于stack exchange,提问作者ЯДPTГФИ
相关产品推荐
相关产品推荐

