第一步引入架包camera:版本号不用填
import 'package:flutter/material.dart';
import 'package:camera/camera.dart';
List<CameraDescription> cameras;
Future<Null> main() async {
cameras = await availableCameras();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Material App',
home: Scaffold(
appBar: AppBar(
title: Text('Material App Bar'),
),
body: CameraPage(cameras),
),
);
}
}
class CameraPage extends StatefulWidget {
final cameras;
CameraPage(this.cameras);
@override
_CameraPageState createState() => _CameraPageState();
}
class _CameraPageState extends State<CameraPage> {
CameraController controller;
@override
void initState() {
super.initState();
controller = CameraController(widget.cameras[0], ResolutionPreset.medium);
controller.initialize().then((_){
if (!mounted) {
return;
}
setState(() {
});
});
}
@override
void dispose() {
super.dispose();
controller.dispose();
}
@override
Widget build(BuildContext context) {
if (!controller.value.isInitialized) {
return Container();
}
return AspectRatio(
aspectRatio: controller.value.aspectRatio,
child: CameraPreview(controller),
);
}
}
网友评论