flutter_generic_camera

Last updated:

0 purchases

flutter_generic_camera Image
flutter_generic_camera Images
Add to Cart

Description:

flutter generic camera

flutter_generic_camera #
📸 A Flutter plugin that provides a custom camera interface for both Android and iOS, supporting various advanced features including photo capture, video recording, mute, zoom, front and back camera switching, and multiple photo capture.
Native features #
Here's all native features that flutterGenericCamera provides to the flutter side.



Features
Android
iOS




🔖 Ask permissions




🎥 Record video




🔈 Enable/disable audio




🎞 Take photos




👁 Zoom




📸 Device flash support






📖  Installation and usage #
Add the package in your pubspec.yaml #
dependencies:
flutter_generic_camera: ^0.0.1
...
copied to clipboard
Platform specific setup #

iOS

Add these on ios/Runner/Info.plist:
<key>NSCameraUsageDescription</key>
<string>Your own description</string>

<key>NSMicrophoneUsageDescription</key>
<string>To enable microphone access when recording video</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>To enable GPS location access for Exif data</string>
copied to clipboard

Android

Change the minimum SDK version to 21 (or higher) in android/app/build.gradle:
minSdkVersion 21
copied to clipboard
In order to be able to take pictures or record videos, you may need additional
permissions depending on the Android version and where you want to save them.
Read more about it in the
official documentation.

WRITE_EXTERNAL_STORAGE is not included in the plugin starting with version
1.4.0.

If you want to record videos with audio, add this permission to your
AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yourpackage">
<uses-permission android:name="android.permission.RECORD_AUDIO" />

<!-- Other declarations -->
</manifest>
copied to clipboard
You may also want to save location of your pictures in exif metadata. In this
case, add below permissions:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.yourpackage">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<!-- Other declarations -->
</manifest>
copied to clipboard

⚠️ Overriding Android dependencies
Some of the dependencies used by CamerAwesome can be overriden if you have a
conflict. Change these variables to define which version you want to use:
buildscript {
ext.kotlin_version = '1.7.10'
ext {
// You can override these variables
compileSdkVersion = 33
minSdkVersion = 24 // 21 minimum
playServicesLocationVersion = "20.0.0"
exifInterfaceVersion = "1.3.4"
}
// ...
}
copied to clipboard
Only change these variables if you are sure of what you are doing.
For example, setting the Play Services Location version might help you when you
have conflicts with other plugins. The below line shows an example of these
conflicts:
java.lang.IncompatibleClassChangeError: Found interface com.google.android.gms.location.ActivityRecognitionClient, but class was expected
copied to clipboard

Import the package in your Flutter app #
import 'package:flutter_generic_camera/config/generic_camera_configuration.dart';
import 'package:flutter_generic_camera/flutter_generic_camera.dart';
copied to clipboard

How to use it #
GenericCameraConfiguration config = GenericCameraConfiguration(
captureMode: AssetType.photo,
canCaptureMultiplePhotos: true,
cameraPosition: CameraPosition.front,
cameraPhotoFlash: FlashMode.auto,
cameraVideoTorch: TorchMode.auto, // In case capture mode video
);
var capturedData = await _flutterGenericCameraPlugin.openCamera(config);
if (capturedData["captured_images"] != null) {
debugPrint("Captured Image ${capturedData["captured_images"]}");
} else if (capturedData["captured_video"] != null) {
debugPrint("Captured Video ${capturedData["captured_video"]}");
}
copied to clipboard

🐽 Updating Camera configuration #
Through state you can access to a GenericCameraConfiguration class.




Function
Comment




captureMode
change capture mode photo or video


canCaptureMultiplePhotos
set true for caputre multiple photos


cameraPosition
change camera positon to front or back


cameraPhotoFlash
Utilize flash functionalities to improve image quality in low-light conditions.


cameraVideoTorch
Utilize torch functionalities to improve video quality in low-light conditions.



All of these configurations are listenable so your UI can
automatically get updated according to the actual configuration.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.