| # Camera Plugin |
| |
| [](https://pub.dartlang.org/packages/camera) |
| |
| A Flutter plugin for iOS and Android allowing access to the device cameras. |
| |
| ## Features: |
| |
| * Display live camera preview in a widget. |
| * Snapshots can be captured and saved to a file. |
| |
| ## Installation |
| |
| First, add `camera` as a [dependency in your pubspec.yaml file](https://flutter.io/using-packages/). |
| |
| ### iOS |
| |
| Add a row to the `ios/Runner/Info.plist` of your app with the key `Privacy - Camera Usage Description` and a usage description. |
| |
| Or in text format add the key: |
| |
| ```xml |
| <key>NSCameraUsageDescription</key> |
| <string>Can I use the camera please?</string> |
| ``` |
| |
| ### Android |
| |
| Change the minimum Android sdk version to 21 (or higher) in your `android/app/build.gradle` file. |
| |
| ``` |
| minSdkVersion 21 |
| ``` |
| |
| ### Example |
| |
| Here is a small example flutter app displaying a full screen camera preview. |
| |
| ```dart |
| import 'dart:async'; |
| import 'package:flutter/material.dart'; |
| import 'package:camera/camera.dart'; |
| |
| List<CameraDescription> cameras; |
| |
| Future<Null> main() async { |
| cameras = await availableCameras(); |
| runApp(new CameraApp()); |
| } |
| |
| class CameraApp extends StatefulWidget { |
| @override |
| _CameraAppState createState() => new _CameraAppState(); |
| } |
| |
| class _CameraAppState extends State<CameraApp> { |
| CameraController controller; |
| |
| @override |
| void initState() { |
| super.initState(); |
| controller = new 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.initialized) { |
| return new Container(); |
| } |
| return new AspectRatio( |
| aspectRatio: |
| controller.value.aspectRatio, |
| child: new CameraPreview(controller)); |
| } |
| } |
| ``` |
| |
| For a more elaborate usage example see [here](https://github.com/flutter/plugins/tree/master/packages/camera/example). |
| |
| *Note*: This plugin is still under development, and some APIs might not be available yet. |
| [Feedback welcome](https://github.com/flutter/flutter/issues) and |
| [Pull Requests](https://github.com/flutter/plugins/pulls) are most welcome! |