flutter安卓自定义相机camera

实现效果
在这里插入图片描述
1.首先在pubspec.yaml引用插件
#相机
camera: ^0.5.8+2
video_player: ^0.10.11+1
flutter_image_compress: ^0.6.8
flutter_spinkit: ^4.1.2+1

2.新建IdentifyCard.dart类
代码如下

import 'dart:async';
import 'dart:io';

import 'package:camera/camera.dart';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
import 'package:video_player/video_player.dart';
import 'package:dio/dio.dart';
import 'package:flutter_image_compress/flutter_image_compress.dart';
import 'package:path_provider/path_provider.dart' as path_provider;
import 'package:flutter_spinkit/flutter_spinkit.dart';

Future<void> getIdentifyCardDemo() async {
   
   
// Fetch the available cameras before initializing the app.
  try {
   
   
    cameras = await availableCameras();
    FlutterImageCompress.showNativeLog = true;
  } on CameraException catch (e) {
   
   
    logError(e.code, e.description);
  }
  //return new IdentifyCard();
}

class IdentifyCard extends StatefulWidget {
   
   
  @override
  _IdentifyCardState createState() {
   
   
    return _IdentifyCardState();
  }
}

void logError(String code, String message) => print('Error: $code\nError Message: $message');

class _IdentifyCardState extends State<IdentifyCard> {
   
   
  CameraController controller;
  //String imagePath;
  String videoPath;
  VideoPlayerController videoController;
  VoidCallback videoPlayerListener;
  WidgetsBinding widgetsBinding;
  List<CameraDescription> cameras;
  final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
  @override
  void initState() {
   
   
    super.initState();
    getCameras();
    photoPath=null;
  }

  @override
  void dispose(){
   
   
    super.dispose();
    controller.dispose();
    videoController.dispose(); 
  }

  @override
  Widget build(BuildContext context) {
   
   
    return Scaffold(
        key: _scaffoldKey,
        body: new Container(
          color: Colors.black,
          child: new Stack(children: <Widget>[
            new Column(
              children: <Widget>[
                Expanded(
                  flex: 6, //flex用来设置当前可用空间的占优比
                  child: new Stack(children: <Widget>[
                    _cameraPreviewWidget(), //相机视图
                    // _cameraFloatImage(),//悬浮的身份证框图
                  ]),
                ),
                Expanded(
                  //flex用来设置当前可用空间的占优比
                  flex: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值