提供手機上的相機套件
提供路徑來儲存照片
建立一個可以在使用任何裝置的路徑
透過 camera 套件中的 availableCameras() 來取得可用的相機
final cameras = await availableCameras();
在此之前,我建議先建立一個 Screen
class StartTakePictureScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Camera Example'),
),
body: Center(
child: RaisedButton(
child: Text('Take A Picture'),
onPressed: () {
this.pushToCamera(context);
},
),
),
);
}
}
再加入以下方法,當相機取得後,就推到拍照頁面
void pushToCamera(BuildContext context) async {
final cameras = await availableCameras();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TakePictureScreen(camera: cameras.first),
),
);
}
一旦取得相機後,我們可以建立 CameraController,可以用來得知目前相機擷取到即時畫面,以及操作相機
Statefull Widget 與他的 StateState 新增一個變數來儲存 CameraController 的狀態State 新增一個變數來儲存來自 CameraController.initialize() 的 Future 變數initState() 實例化 controller