usb_camera_plugin 0.6.0 copy "usb_camera_plugin: ^0.6.0" to clipboard
usb_camera_plugin: ^0.6.0 copied to clipboard

PlatformAndroid

A Flutter plugin bridge for USB camera integration on Android. Use with example app for full camera features including recording, capture, and effects. Simple integration in any Flutter project.

usb_camera_plugin #

A Flutter plugin for accessing and controlling USB cameras on Android devices. This plugin enables you to connect external USB cameras (UVC - USB Video Class) to your Flutter apps and access professional camera features.

Features #

USB Camera Support - Connect and control external USB cameras (UVC compatible)
Real-time Preview - Display live camera feed in your Flutter app
Video Recording - Record videos in MP4 format with H.264 encoding
Image Capture - Take high-quality photos
Audio Support - Record audio with AAC encoding
Visual Effects - Apply effects like black & white, soul, zoom
Multiple Camera Types - Supports Camera1, Camera2, and UVC cameras
Professional Features - Resolution control, encoding options, and more

Platform Support #

Platform Support
Android ✅ Yes
iOS ❌ No
Web ❌ No
Windows ❌ No
macOS ❌ No
Linux ❌ No

Requirements #

  • Flutter SDK: >=3.3.0
  • Dart SDK: ^3.8.1
  • Android minSdkVersion: 24 (Android 7.0)
  • Android compileSdkVersion: 34
  • USB OTG support on your Android device
  • UVC compatible USB camera

Installation #

📦 Add to Your Project #

The plugin now works in ANY Flutter project! 🎉

Option 1: From Git (Recommended for now)

dependencies:
  usb_camera_plugin:
    git:
      url: https://github.com/teamtechackers/create_new_camara_plugin.git

Option 2: Local Path (for development)

dependencies:
  usb_camera_plugin:
    path: /path/to/camera_pluging_flutter_v1

Then run:

flutter pub get

🎯 Two Ways to Use #

Choose based on your needs:

Option 1: Quick Integration (5 minutes)

Add plugin to any project for basic camera bridge functionality.

Get complete camera UI in YOUR project with all features:

  • USB Camera Detection - Automatic device discovery
  • Real-time Preview - Multiple resolution support
  • Video Recording - H.264/MP4 format
  • Photo Capture - High-quality images
  • Effects - Black & White, Soul, Zoom, and more
  • Audio Recording - AAC audio support
  • Settings & Controls - Brightness, contrast, resolution
  • Multi-camera Support - Switch between cameras
  • Professional UI - Modern, intuitive interface

Works in YOUR project with simple setup!


🚀 Quick Start for YOUR Project (test_1, test_2, etc.) #

Step 1: Run Auto-Setup Script #

cd /Users/apple/AndroidStudioProjects/camera_pluging_flutter_v1
./setup_in_project.sh /Users/apple/AndroidStudioProjects/test_1

This copies all camera files to your project!

Step 2: Add to Your pubspec.yaml #

dependencies:
  usb_camera_plugin:
    path: ../camera_pluging_flutter_v1

Step 3: Update Your build.gradle #

Add to android/app/build.gradle:

android {
    compileSdk 34
    ndkVersion "27.0.12077973"
    
    defaultConfig {
        minSdk 24
        multiDexEnabled true
    }
    
    buildFeatures {
        viewBinding true
        dataBinding true
    }
}

dependencies {
    // Camera dependencies
    implementation 'com.afollestad.material-dialogs:core:3.2.1'
    implementation 'com.geyifeng.immersionbar:immersionbar:3.2.2'
    implementation 'com.github.bumptech.glide:glide:4.10.0'
    implementation 'com.tencent:mmkv:1.2.12'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
}

Step 4: Update AndroidManifest #

Add to android/app/src/main/AndroidManifest.xml:

<activity
    android:name="com.jiangdg.demo.MainActivity"
    android:exported="false"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar" />

Step 5: Use in Flutter! #

import 'package:usb_camera_plugin/usb_camera_plugin.dart';

ElevatedButton(
  onPressed: () async {
    await UsbCameraPlugin().openCamera();
    // Full camera UI opens! 🎉
  },
  child: Text('Open Camera'),
)

Done! Full camera features in YOUR app! 🚀

📖 Detailed guide: See HOW_TO_USE_WITH_YOUR_PROJECT.md

🚀 Quick Start #

import 'package:usb_camera_plugin/usb_camera_plugin.dart';

// Create plugin instance
final _usbCameraPlugin = UsbCameraPlugin();

// Open camera
await _usbCameraPlugin.openCamera();

Android Setup #

Add the following permissions to your AndroidManifest.xml:

<uses-feature android:name="android.hardware.usb.host" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Usage #

Basic Example #

import 'package:flutter/material.dart';
import 'package:usb_camera_plugin/usb_camera_plugin.dart';

class CameraScreen extends StatelessWidget {
  final _usbCameraPlugin = UsbCameraPlugin();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('USB Camera'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            try {
              await _usbCameraPlugin.openCamera();
            } catch (e) {
              print('Error opening camera: $e');
            }
          },
          child: Text('Open USB Camera'),
        ),
      ),
    );
  }
}

Get Platform Version #

final plugin = UsbCameraPlugin();
String? version = await plugin.getPlatformVersion();
print('Platform version: $version');

API Reference #

UsbCameraPlugin #

Main class for interacting with USB cameras.

Methods

  • openCamera() - Opens the USB camera interface

    Future<void> openCamera()
    
  • getPlatformVersion() - Returns the Android platform version

    Future<String?> getPlatformVersion()
    

Compatible Devices #

This plugin works with UVC (USB Video Class) compatible cameras, including:

  • External USB webcams
  • USB endoscope cameras
  • USB microscope cameras
  • Industrial USB cameras
  • Medical USB cameras
  • Most USB cameras that follow the UVC standard

Use Cases #

  • 🏥 Medical Applications - Endoscope and microscope integration
  • 🏭 Industrial Inspection - Quality control and monitoring
  • 🔬 Scientific Research - Laboratory equipment integration
  • 📹 Video Production - Professional camera integration
  • 🎮 Streaming Apps - External camera support
  • 🔐 Security Systems - Surveillance camera integration

Known Limitations #

  • Currently supports Android only
  • Requires USB OTG support on the device
  • Some camera-specific features may not be available on all devices
  • iOS support is not available (iOS has restrictions on USB camera access)

Example App #

Check out the example directory for a complete working app that demonstrates all features.

Troubleshooting #

Camera not detected #

  • Ensure your device supports USB OTG
  • Check that the USB camera is UVC compatible
  • Verify USB permissions are granted
  • Try reconnecting the camera

Permission errors #

  • Make sure all required permissions are added to AndroidManifest.xml
  • Request runtime permissions for Android 6.0+

Build errors #

  • Ensure minSdkVersion is at least 24
  • Run flutter clean and rebuild

Contributing #

Contributions are welcome! Please feel free to submit a Pull Request.

Credits #

This plugin uses the following open-source libraries:

  • AndroidUSBCamera by jiangdg
  • libUVC - USB Video Class library
  • libjpeg-turbo - JPEG encoding/decoding
  • libusb - USB device access

License #

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Author #

Developed with ❤️ for the Flutter community.

Changelog #

See CHANGELOG.md for a list of changes.

Support #

If you find this plugin helpful, please give it a ⭐️ on GitHub!

For bugs and feature requests, please file an issue on the GitHub repository.

0
likes
130
points
9
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin bridge for USB camera integration on Android. Use with example app for full camera features including recording, capture, and effects. Simple integration in any Flutter project.

Repository (GitHub)

Documentation

API reference

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on usb_camera_plugin

Packages that implement usb_camera_plugin