step 8 : fix issue camera prevent hardware karena OBS terinstall
This commit is contained in:
38
lib/provider/camera_controller_provider.dart
Normal file
38
lib/provider/camera_controller_provider.dart
Normal file
@@ -0,0 +1,38 @@
|
||||
import 'package:camera/camera.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
|
||||
final cameraControllerProvider =
|
||||
StateNotifierProvider<CameraControllerNotifier, CameraController?>(
|
||||
(ref) => CameraControllerNotifier());
|
||||
|
||||
class CameraControllerNotifier extends StateNotifier<CameraController?> {
|
||||
CameraControllerNotifier() : super(null);
|
||||
|
||||
Future<void> initializeCamera(CameraDescription camera) async {
|
||||
final controller = CameraController(camera, ResolutionPreset.medium);
|
||||
await controller.initialize();
|
||||
state = controller;
|
||||
}
|
||||
|
||||
Future<String> takePicture() async {
|
||||
if (state == null || !state!.value.isInitialized) {
|
||||
throw Exception('Camera is not initialized');
|
||||
}
|
||||
|
||||
final path = p.join(
|
||||
(await getTemporaryDirectory()).path,
|
||||
'${DateTime.now()}.png',
|
||||
);
|
||||
|
||||
await state!.takePicture();
|
||||
return path;
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
state?.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user