DEV

Flutterでカメラ使ってみる(Android)

色んなプラグインが詰まってるやつを見つけました。先程使っていたgoogle mapのも入っている。

https://github.com/flutter/pluginsgithub.com

カメラのプラグインはこれです。

plugins/packages/camera at master · flutter/plugins · GitHub

つくったもの

https://github.com/edo1z/flutter_study/tree/716dd14f4439005e5d21a34d122f6ff4ea13083cgithub.com

f:id:edo1z:20190827155243p:plain

事前準備

android/app/build.gradleminSdkVersion21 にする必要があります。

カメラのプレビュー

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
List<CameraDescription> cameras;
class CameraScreen extends StatefulWidget {
CameraScreen() {
getAvaliableCameras();
}
Future<void> getAvaliableCameras() async {
if (cameras == null) {
cameras = await availableCameras();
}
}
@override
_CameraScreenState createState() => _CameraScreenState();
}
class _CameraScreenState extends State<CameraScreen> {
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));
}
}

これだと撮影とかできないです。プレビューが表示されるだけ。 下記の記事は、撮影して保存したりする部分も記事にしてくれているので、参考になりそうです。

https://qiita.com/ishigaki_shun/items/c781bdf3f8f03cd11eabqiita.com