You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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ГФИ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:55:20