# flutter_camera
**Repository Path**: hsxr/flutter_camera
## Basic Information
- **Project Name**: flutter_camera
- **Description**: 修改flutter原生插件camera
- **Primary Language**: Dart
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-07-07
- **Last Updated**: 2024-05-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Camera Plugin
[](https://pub.dartlang.org/packages/camera)
A Flutter plugin for iOS and Android allowing access to the device cameras.
*Note*: This plugin is still under development, and some APIs might not be available yet. We are working on a refactor which can be followed here: [issue](https://github.com/flutter/flutter/issues/31225)
## Features:
* Display live camera preview in a widget.
* Snapshots can be captured and saved to a file.
* Record video.
* Add access to the image stream from Dart.
## Installation
First, add `camera` as a [dependency in your pubspec.yaml file](https://flutter.io/using-packages/).
### iOS
Add two rows to the `ios/Runner/Info.plist`:
* one with the key `Privacy - Camera Usage Description` and a usage description.
* and one with the key `Privacy - Microphone Usage Description` and a usage description.
Or in text format add the key:
```xml
NSCameraUsageDescription
Can I use the camera please?
NSMicrophoneUsageDescription
Can I use the mic please?
```
### 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 cameras;
Future main() async {
cameras = await availableCameras();
runApp(CameraApp());
}
class CameraApp extends StatefulWidget {
@override
_CameraAppState createState() => _CameraAppState();
}
class _CameraAppState extends State {
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));
}
}
```
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!