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:get/get.dart';
class TextToSpeech {
final FlutterTts tts = FlutterTts();
class TextToSpeechController extends GetxController {
final flutterTts = FlutterTts();
// Initialize the TTS engine with desired settings
Future initTts() async {
await tts.setLanguage('en-US'); // Set language
await tts.setSpeechRate(0.8); // Adjust speech rate
await tts.setVolume(1.0); // Set volume
// Initialize TTS in initState
@override
void onInit() {
super.onInit();
initTts();
}
// Speak the given text
Future speakText(String text) async {
await tts.speak(text);
// Dispose of TTS when controller is closed
@override
void onClose() {
super.onClose();
flutterTts.completionHandler;
}
// Stop speaking
Future stopSpeaking() async {
await tts.stop();
// Function to initialize TTS engine
Future<void> initTts() async {
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
// bool isSpeaking() => tts.isSpeaking;
// Function to speak the given text
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 '../../main.dart';
import '../../models/model/locations.dart';
import '../../views/Rate/rate_captain.dart';
import '../../views/widgets/elevated_btn.dart';
import '../firebase/firbase_messge.dart';
import '../functions/crud.dart';
@@ -166,7 +165,7 @@ class MapPassengerController extends GetxController {
List<String> hintTextwayPointStringAll = [];
var placesCoordinate = <String>[];
String hintTextDestinationPoint = 'Select your destination'.tr;
late String rideId;
late String rideId = 'yet';
bool noCarString = false;
bool isCashSelectedBeforeConfirmRide = false;
bool isPassengerChosen = false;
@@ -953,7 +952,7 @@ class MapPassengerController extends GetxController {
isMarkersShown = false;
// totalStepDurations = 0;
timeToPassengerFromDriverAfterApplied = 0;
if (rideId != '') {
if (rideId != 'yet') {
await CRUD().post(link: AppLink.updateDriverOrder, payload: {
"order_id": rideId.toString(), // Convert to String
"status": 'Cancel'
@@ -1267,7 +1266,7 @@ class MapPassengerController extends GetxController {
}
// Configure location accuracy
LocationAccuracy desiredAccuracy = LocationAccuracy.high;
// LocationAccuracy desiredAccuracy = LocationAccuracy.high;
// Get the current location
LocationData _locationData = await location.getLocation();
@@ -1871,18 +1870,18 @@ class MapPassengerController extends GetxController {
update();
}
initilizeGetStorage() {
if (box.read(BoxName.addWork).toString() == '') {
initilizeGetStorage() async {
if (box.read(BoxName.addWork) == null) {
box.write(BoxName.addWork, 'addWork');
}
if (box.read(BoxName.addHome).toString() == '') {
if (box.read(BoxName.addHome) == null) {
box.write(BoxName.addHome, 'addHome');
}
}
@override
void onInit() async {
mapAPIKEY = await storage.read(key: BoxName.mapAPIKEY);
// mapAPIKEY = await storage.read(key: BoxName.mapAPIKEY);
readyWayPoints();
await getLocation();
await addToken();

View File

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

View File

@@ -212,7 +212,7 @@ GetBuilder<MapPassengerController> formSearchPlacesDestenation() {
color: AppColor.greenColor.withOpacity(.4),
border: Border.all()),
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(

View File

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

View File

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