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

Flutter实现:如何同时实现摄像头扫码QR Code与拍照功能?

推荐的Flutter包及实现方案
  • mobile_scanner:这是当前维护活跃、功能完善的扫码工具包,完全匹配你的需求:

    • 支持在实时摄像头预览中自动检测QR Code,检测到后可触发自定义回调逻辑(比如提取扫码内容、执行后续操作)
    • 未检测到QR Code时,可通过包内置的API调用拍照功能,直接获取当前摄像头画面的图片文件
    • 核心实现示例:
      late MobileScannerController mobileScannerController;
      
      @override
      void initState() {
        super.initState();
        mobileScannerController = MobileScannerController(
          detectionSpeed: DetectionSpeed.normal,
          facing: CameraFacing.back,
        );
      }
      
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: MobileScanner(
            controller: mobileScannerController,
            onDetect: (capture) {
              final barcodes = capture.barcodes;
              if (barcodes.isNotEmpty) {
                final qrContent = barcodes.first.rawValue ?? '';
                // 检测到QR Code时的回调处理逻辑
                print('扫码内容:$qrContent');
              }
            },
          ),
          floatingActionButton: ElevatedButton(
            onPressed: () async {
              final image = await mobileScannerController.takePicture();
              // 处理拍摄到的画面,比如保存或展示
              print('已拍摄画面:${image?.path}');
            },
            child: const Text('拍摄当前画面'),
          ),
        );
      }
      
  • qr_code_scanner:老牌扫码包,同样支持实时扫码+拍照功能,兼容性稳定。可通过控制器获取摄像头实例,在未检测到QR Code时调用拍照方法,扫码触发时通过onQRViewCreated回调处理结果。

这两个包均基于原生平台能力实现,保证了QR Code检测的效率与设备兼容性,同时提供的拍照API能满足未扫码时的画面捕获需求。

内容的提问来源于stack exchange,提问作者Mark Dionnie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:10:19