flutter_uvc_camera 0.0.1 copy "flutter_uvc_camera: ^0.0.1" to clipboard
flutter_uvc_camera: ^0.0.1 copied to clipboard

flutter android uvc camera plugin.

flutter_uvc_camera #

一个基于 AndroidUSBCamera 改写的 Flutter 插件,让 Flutter 开发的安卓软件可以使用外接摄像头。

开始使用 #

1. 添加依赖 #

在你的 Flutter 项目的 pubspec.yaml 文件中添加 flutter_uvc_camera 插件依赖:

dependencies:
  flutter_uvc_camera: ^0.0.1

然后运行 flutter pub get 命令来安装插件。

2. 配置 Android 项目 #

在使用本插件之前,需要对 Android 项目进行一些配置。

添加权限

在 Android 项目的 AndroidManifest.xml 文件中添加以下权限:

   <uses-permission android:name="android.permission.USB_PERMISSION" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <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"/>
    <uses-feature android:name="android.hardware.usb.host" />
    <uses-feature android:name="android.hardware.camera"/>
    <uses-feature android:name="android.hardware.camera.autofocus"/>
    <!-- 在这里添加其他所需的权限 -->

添加 Intent Filter 和 Meta-data 用于插入设备识别,拔插监听和识别打开应用

mainActivity 的 intent-filter 中添加 USB 设备连接的 action,并在 meta-data 中引用相应的 XML 文件:

<intent-filter>
    <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
    android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
    android:resource="@xml/device_filter" />
<?xml version="1.0" encoding="utf-8"?>
    <usb>
        <usb-device vendor-id="11111" product-id="22222" />
    </usb>

3. 使用示例 #

import 'package:flutter/material.dart';
import 'package:flutter_uvc_camera/uvc_camera_controller.dart';
import 'package:flutter_uvc_camera/uvc_camera_view.dart';

class CameraTest extends StatefulWidget {
  const CameraTest({super.key});

  @override
  State<CameraTest> createState() => _CameraTestState();
}

class _CameraTestState extends State<CameraTest> {
  UVCCameraController? cameraController;
  
  @override
  void initState() {
    super.initState();
    cameraController = UVCCameraController();
    cameraController?.msgCallback = (state) {
      showCustomToast(state);
    };
  }
  
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('UVC Camera Example'),
        ),
        body: Center(
          child: UVCCameraView(
              cameraController: cameraController!,
              params: const UVCCameraViewParamsEntity(
                  aspectRatio: 1, productIds: [521115, 77777], vendorIds: [52111, 88888]),
              width: 300,
              height: 300),
        ),
      ),
    );
  }
}

注意事项 #

  • 请确保在使用插件前已经配置了所需的权限,否则插件可能无法正常工作。
  • 插件目前支持在 Flutter 项目中使用外接摄像头,但可能存在一些限制和兼容性问题。请根据实际情况对插件进行测试和调整。

问题反馈 #

如果在使用过程中遇到任何问题或有任何建议,请在 GitHub Issues 中反馈。

8
likes
0
pub points
77%
popularity

Publisher

unverified uploader

flutter android uvc camera plugin.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on flutter_uvc_camera