// // import 'dart:io'; // // // // import 'package:flutter/material.dart'; // // import 'package:flutter_sound/flutter_sound.dart'; // // import 'package:get/get.dart'; // // import 'package:permission_handler/permission_handler.dart'; // // // // import '../home/map_passenger_controller.dart'; // // // // class AudioController extends GetxController { // // final recorder = FlutterSoundRecorder(); // // bool isRecording = false; // // // // @override // // void onInit() { // // super.onInit(); // // initRecorder(); // // } // // // // Future initRecorder() async { // // final status = await Permission.microphone.request(); // // if (status != PermissionStatus.granted) { // // if (status.isPermanentlyDenied) { // // // Handle permission permanently denied // // showPermissionDeniedDialog(); // // } else if (status.isDenied) { // // // Handle permission denied // // showPermissionDeniedSnackbar(); // // } else if (status.isRestricted) { // // // Handle permission restricted // // showPermissionDeniedSnackbar(); // // } // // return; // // } // // await recorder.openRecorder(); // // recorder.setSubscriptionDuration(const Duration(minutes: 50)); // // } // // // // Future startRecording() async { // // if (!recorder.isStopped) { // // await recorder.startRecorder(); // // } // // isRecording = true; // // update(); // // } // // // // Future stopRecording() async { // // final filePath = await recorder.stopRecorder(); // // final audioFile = File(filePath!); // // print('Recorded file path: $audioFile'); // // // Now you can send this file to the server // // isRecording = false; // // update(); // // } // // // // @override // // void onClose() { // // recorder.stopRecorder(); // // super.onClose(); // // } // // // // void showPermissionDeniedDialog() { // // showDialog( // // context: Get.context!, // // builder: (context) => AlertDialog( // // title: const Text('Microphone Permission'), // // content: // // const Text('Microphone permission is required to record audio.'), // // actions: [ // // TextButton( // // onPressed: () { // // Navigator.of(context).pop(); // // openAppSettings(); // // }, // // child: const Text('Open Settings'), // // ), // // TextButton( // // onPressed: () { // // Navigator.of(context).pop(); // // }, // // child: const Text('Cancel'), // // ), // // ], // // ), // // ); // // } // // // // void showPermissionDeniedSnackbar() { // // Get.snackbar( // // 'Microphone Permission', // // 'Microphone permission is required to record audio.', // // snackPosition: SnackPosition.BOTTOM, // // duration: const Duration(seconds: 5), // // mainButton: TextButton( // // onPressed: () { // // openAppSettings(); // // }, // // child: const Text( // // 'Open Settings', // // style: TextStyle(color: Colors.white), // // ), // // ), // // ); // // } // // } // import 'package:flutter/material.dart'; // import 'package:get/get.dart'; // // import 'package:flutter_sound/flutter_sound.dart'; // import 'package:permission_handler/permission_handler.dart'; // // class AudioController extends GetxController { // final flutterSoundHelper = FlutterSoundHelper(); // // bool isRecording = false; // // Future startRecording() async { // if (!await flutterSoundHelper.hasPermissions()) { // await flutterSoundHelper.requestPermissions(); // } // // if (!await flutterSoundHelper.hasPermissions()) { // return; // } // // await flutterSoundHelper.startRecorder(); // isRecording = true; // } // // Future stopRecording() async { // if (!isRecording) { // return; // } // // await flutterSoundHelper.stopRecorder(); // isRecording = false; // } // } // // class FlutterSoundHelper { // final flutterSound = FlutterSoundRecorder(); // // Future hasPermissions() async { // return await Permission.microphone.isGranted; // } // // Future requestPermissions() async { // await Permission.microphone.request(); // } // // Future startRecorder() async { // await flutterSound.openRecorder(); // await flutterSound.startRecorder(toFile: 'audio.wav'); // } // // Future stopRecorder() async { // await flutterSound.stopRecorder(); // await flutterSound.closeRecorder(); // } // }