手持ちのスマホ(oppo reno5A)で広角レンズを利用したカメラアプリをflutterで作りたいです。 ネットを参考にとりあえず写るようにしましたが、通常レンズでの撮影になっています。 おそらく利用可能なカメラ一覧を取得したうえ切り替えるといった処理になるのかと思い試しましたがフロントカメラとバックカメラの2つしかリストアップされませんでした。 画角の変更方法を知りたいです。 import 'package:camera/camera.dart'; import 'package:flutter/material.dart'; Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); final cameras = await availableCameras(); // 利用可能なカメラ一覧 for (CameraDescription camera in cameras) { print('カメラID: ${camera.name}'); print('レンズ方向: ${camera.lensDirection}'); print('-'); } final firstCamera = cameras.first; runApp(MyApp(camera: firstCamera)); } class MyApp extends StatelessWidget { const MyApp({ Key? key, required this.camera, }) : super(key: key); final CameraDescription camera; @override Widget build(BuildContext context) { return MaterialApp( title: 'Camera Test', theme: ThemeData(), home: TakePictureScreen(camera: camera), ); } } class TakePictureScreen extends StatefulWidget { const TakePictureScreen({ Key? key, required this.camera, }) : super(key: key); final CameraDescription camera; @override TakePictureScreenState createState() => TakePictureScreenState(); } class TakePictureScreenState extends State<TakePictureScreen> { late CameraController _controller; late Future<void> _initializeControllerFuture; @override void initState() { super.initState(); _controller = CameraController( widget.camera, ResolutionPreset.medium, ); _initializeControllerFuture = _controller.initialize().then((_) { if (!mounted) { return; } //画像ストリーム開始 _controller.startImageStream((CameraImage image) { //ピクセル取得して何かする }); }); } @override void dispose() { _controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( //カメラプレビューなどのUI ); } }
Android開発