import
'package:flutter/material.dart'
;
import
'package:camera/camera.dart'
;
void
main() {
runApp(
const
FlashlightApp());
}
class
FlashlightApp extends StatefulWidget {
const
FlashlightApp({super.key});
@override
_FlashlightAppState createState() => _FlashlightAppState();
}
class
_FlashlightAppState extends State<FlashlightApp> {
late List<CameraDescription> cameras;
late CameraController _controller;
Color _bgColor = Colors.white;
@override
void
initState() {
initializeCamera();
super.initState();
}
Future<
void
> initializeCamera() async {
cameras = await availableCameras();
_controller = CameraController(cameras[0], ResolutionPreset.low);
await _controller.initialize();
}
Future<
void
> toggleFlashlight() async {
if
(_controller.value.isInitialized) {
if
(_controller.value.flashMode == FlashMode.off) {
await _controller.setFlashMode(FlashMode.torch);
setState(() {
_bgColor = Colors.greenAccent;
});
}
else
{
await _controller.setFlashMode(FlashMode.off);
setState(() {
_bgColor = Colors.white;
});
}
}
}
@override
void
dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return
MaterialApp(
title:
"GFG- Flutter Flashlight App"
,
home: Scaffold(
backgroundColor: _bgColor,
appBar: AppBar(
title:
const
Text(
'Flutter Flashlight App'
),
),
body: Center(
child: IconButton(
icon:
const
Icon(Icons.flash_on),
onPressed: toggleFlashlight,
),
),
),
);
}
}