This commit is contained in:
Hamza-Ayed
2024-02-06 14:10:54 +03:00
parent 4ee10218a9
commit 2820eceee0
6 changed files with 44 additions and 27 deletions

View File

@@ -1,25 +1,38 @@
import 'package:flutter_tts/flutter_tts.dart'; import 'package:flutter_tts/flutter_tts.dart';
import 'package:get/get.dart';
class TextToSpeech { class TextToSpeechController extends GetxController {
final FlutterTts tts = FlutterTts(); final flutterTts = FlutterTts();
// Initialize the TTS engine with desired settings // Initialize TTS in initState
Future initTts() async { @override
await tts.setLanguage('en-US'); // Set language void onInit() {
await tts.setSpeechRate(0.8); // Adjust speech rate super.onInit();
await tts.setVolume(1.0); // Set volume initTts();
} }
// Speak the given text // Dispose of TTS when controller is closed
Future speakText(String text) async { @override
await tts.speak(text); void onClose() {
super.onClose();
flutterTts.completionHandler;
} }
// Stop speaking // Function to initialize TTS engine
Future stopSpeaking() async { Future<void> initTts() async {
await tts.stop(); await flutterTts.setLanguage('en-US'); // Set language
await flutterTts.setSpeechRate(0.5); // Adjust speech rate
await flutterTts.setVolume(1.0); // Set volume
} }
// Check if TTS is currently speaking // Function to speak the given text
// bool isSpeaking() => tts.isSpeaking; Future<void> speakText(String text) async {
try {
await flutterTts.speak(text);
} catch (error) {
// Handle error gracefully, e.g., show a message
Get.snackbar('Error', 'Failed to speak text: $error');
print('Failed to speak text: $error');
}
}
} }

View File

@@ -20,7 +20,6 @@ import '../../constant/info.dart';
import '../../constant/links.dart'; import '../../constant/links.dart';
import '../../main.dart'; import '../../main.dart';
import '../../models/model/locations.dart'; import '../../models/model/locations.dart';
import '../../views/Rate/rate_captain.dart';
import '../../views/widgets/elevated_btn.dart'; import '../../views/widgets/elevated_btn.dart';
import '../firebase/firbase_messge.dart'; import '../firebase/firbase_messge.dart';
import '../functions/crud.dart'; import '../functions/crud.dart';
@@ -166,7 +165,7 @@ class MapPassengerController extends GetxController {
List<String> hintTextwayPointStringAll = []; List<String> hintTextwayPointStringAll = [];
var placesCoordinate = <String>[]; var placesCoordinate = <String>[];
String hintTextDestinationPoint = 'Select your destination'.tr; String hintTextDestinationPoint = 'Select your destination'.tr;
late String rideId; late String rideId = 'yet';
bool noCarString = false; bool noCarString = false;
bool isCashSelectedBeforeConfirmRide = false; bool isCashSelectedBeforeConfirmRide = false;
bool isPassengerChosen = false; bool isPassengerChosen = false;
@@ -953,7 +952,7 @@ class MapPassengerController extends GetxController {
isMarkersShown = false; isMarkersShown = false;
// totalStepDurations = 0; // totalStepDurations = 0;
timeToPassengerFromDriverAfterApplied = 0; timeToPassengerFromDriverAfterApplied = 0;
if (rideId != '') { if (rideId != 'yet') {
await CRUD().post(link: AppLink.updateDriverOrder, payload: { await CRUD().post(link: AppLink.updateDriverOrder, payload: {
"order_id": rideId.toString(), // Convert to String "order_id": rideId.toString(), // Convert to String
"status": 'Cancel' "status": 'Cancel'
@@ -1267,7 +1266,7 @@ class MapPassengerController extends GetxController {
} }
// Configure location accuracy // Configure location accuracy
LocationAccuracy desiredAccuracy = LocationAccuracy.high; // LocationAccuracy desiredAccuracy = LocationAccuracy.high;
// Get the current location // Get the current location
LocationData _locationData = await location.getLocation(); LocationData _locationData = await location.getLocation();
@@ -1871,18 +1870,18 @@ class MapPassengerController extends GetxController {
update(); update();
} }
initilizeGetStorage() { initilizeGetStorage() async {
if (box.read(BoxName.addWork).toString() == '') { if (box.read(BoxName.addWork) == null) {
box.write(BoxName.addWork, 'addWork'); box.write(BoxName.addWork, 'addWork');
} }
if (box.read(BoxName.addHome).toString() == '') { if (box.read(BoxName.addHome) == null) {
box.write(BoxName.addHome, 'addHome'); box.write(BoxName.addHome, 'addHome');
} }
} }
@override @override
void onInit() async { void onInit() async {
mapAPIKEY = await storage.read(key: BoxName.mapAPIKEY); // mapAPIKEY = await storage.read(key: BoxName.mapAPIKEY);
readyWayPoints(); readyWayPoints();
await getLocation(); await getLocation();
await addToken(); await addToken();

View File

@@ -8,6 +8,7 @@ import 'package:flutter_stripe/flutter_stripe.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart'; import 'package:get_storage/get_storage.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:ride/controller/home/map_passenger_controller.dart';
import 'constant/api_key.dart'; import 'constant/api_key.dart';
import 'constant/credential.dart'; import 'constant/credential.dart';
@@ -59,6 +60,7 @@ void main() async {
DeviceOrientation.portraitDown, DeviceOrientation.portraitDown,
]); ]);
} }
// MapPassengerController().initilizeGetStorage();
runApp(const MyApp()); runApp(const MyApp());
} }

View File

@@ -212,7 +212,7 @@ GetBuilder<MapPassengerController> formSearchPlacesDestenation() {
color: AppColor.greenColor.withOpacity(.4), color: AppColor.greenColor.withOpacity(.4),
border: Border.all()), border: Border.all()),
child: Text( child: Text(
'Work : ${box.read(BoxName.addWork) == 'addWork' ? 'Add Work' : box.read(BoxName.addWork).toString().split(',')[0] + box.read(BoxName.addWork).toString().split(',')[1]} '), 'Work : ${box.read(BoxName.addWork).toString() == 'addWork' ? 'Add Work' : box.read(BoxName.addWork).toString().split(',')[0] + box.read(BoxName.addWork).toString().split(',')[1]} '),
), ),
), ),
InkWell( InkWell(

View File

@@ -3,12 +3,15 @@ import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/main.dart';
import '../../../constant/colors.dart'; import '../../../constant/colors.dart';
import '../../../controller/functions/tts.dart'; import '../../../controller/functions/tts.dart';
import '../../../controller/home/map_passenger_controller.dart'; import '../../../controller/home/map_passenger_controller.dart';
GetBuilder<MapPassengerController> leftMainMenuIcons() { GetBuilder<MapPassengerController> leftMainMenuIcons() {
final textToSpeechController = Get.put(TextToSpeechController());
return GetBuilder<MapPassengerController>( return GetBuilder<MapPassengerController>(
builder: (controller) => Positioned( builder: (controller) => Positioned(
top: 85, top: 85,
@@ -87,9 +90,7 @@ GetBuilder<MapPassengerController> leftMainMenuIcons() {
borderRadius: BorderRadius.circular(15)), borderRadius: BorderRadius.circular(15)),
child: IconButton( child: IconButton(
onPressed: () { onPressed: () {
final _textToSpeech = TextToSpeech(); textToSpeechController.speakText('''hello this is hamza''');
_textToSpeech.initTts();
_textToSpeech.speakText("Hello, world!");
}, },
icon: const Icon( icon: const Icon(
Icons.voice_chat, Icons.voice_chat,

View File

@@ -163,6 +163,8 @@ class MainBottomMenuMap extends StatelessWidget {
onPressed: () { onPressed: () {
controller controller
.changeMainBottomMenuMap(); .changeMainBottomMenuMap();
// controller
// .initilizeGetStorage();
}, },
icon: icon:
controller.isMainBottomMenuMap controller.isMainBottomMenuMap