【问题标题】:How to use Android Camera in Background in Flutter?如何在 Flutter 的后台使用 Android 相机?
【发布时间】:2019-07-15 09:42:18
【问题描述】:

我需要在 Flutter 中创建一个考试应用程序,我们需要每隔一段时间为用户拍摄照片和视频,而在此过程中我们不想显示相机屏幕。

我尝试使用 Flutter 的 Camera 插件,但在没有相机预览的情况下我无法找到任何方法来捕获图像和视频。

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';

List<CameraDescription> cameras;

Future<void> main() async {
  cameras = await availableCameras();
  runApp(CameraApp());
}

class CameraApp extends StatefulWidget {
  @override
  _CameraAppState createState() => _CameraAppState();
}

class _CameraAppState extends State<CameraApp> {
  CameraController controller;

  @override
  void initState() {
    super.initState();
    controller = CameraController(cameras[0], ResolutionPreset.medium);
    controller.initialize().then((_) {
      if (!mounted) {
        return;
      }
      setState(() {});
    });
  }

  @override
  void dispose() {
    controller?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    if (!controller.value.isInitialized) {
      return Container();
    }
    return AspectRatio(
        aspectRatio:
        controller.value.aspectRatio,
        child: CameraPreview(controller));
  }
}

我不想显示预览屏幕并每隔一段时间拍摄图像或视频

【问题讨论】:

  • 由于隐私问题,我怀疑 Android 或 iOS 会允许您这样做。
  • 在 Android 中,可以通过将输出定向到 SurfaceTexture stackoverflow.com/a/25769551/3493655
  • 尝试在 Stack 的帮助下使用 Container 覆盖 cameraPreview

标签: flutter


【解决方案1】:

虽然在早期的 Android 迭代中可以在后台访问相机。从 Android P 开始,只有在应用程序处于前台时才能访问摄像头和麦克风等传感器。更多详情可以阅读here

【讨论】:

    猜你喜欢
    • 2013-10-17
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 2015-03-29
    • 2011-11-15
    • 2021-02-18
    相关资源
    最近更新 更多