2/6/4
This commit is contained in:
@@ -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');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -163,6 +163,8 @@ class MainBottomMenuMap extends StatelessWidget {
|
|||||||
onPressed: () {
|
onPressed: () {
|
||||||
controller
|
controller
|
||||||
.changeMainBottomMenuMap();
|
.changeMainBottomMenuMap();
|
||||||
|
// controller
|
||||||
|
// .initilizeGetStorage();
|
||||||
},
|
},
|
||||||
icon:
|
icon:
|
||||||
controller.isMainBottomMenuMap
|
controller.isMainBottomMenuMap
|
||||||
|
|||||||
Reference in New Issue
Block a user