2/6/3
This commit is contained in:
25
lib/controller/functions/tts.dart
Normal file
25
lib/controller/functions/tts.dart
Normal file
@@ -0,0 +1,25 @@
|
||||
import 'package:flutter_tts/flutter_tts.dart';
|
||||
|
||||
class TextToSpeech {
|
||||
final FlutterTts tts = 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
|
||||
}
|
||||
|
||||
// Speak the given text
|
||||
Future speakText(String text) async {
|
||||
await tts.speak(text);
|
||||
}
|
||||
|
||||
// Stop speaking
|
||||
Future stopSpeaking() async {
|
||||
await tts.stop();
|
||||
}
|
||||
|
||||
// Check if TTS is currently speaking
|
||||
// bool isSpeaking() => tts.isSpeaking;
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:math' show cos;
|
||||
import 'dart:math' as math;
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:get/get.dart';
|
||||
@@ -1461,6 +1463,8 @@ class MapPassengerController extends GetxController {
|
||||
//print(nearestCar!.id);
|
||||
}
|
||||
|
||||
List<double> headingAngles = [];
|
||||
|
||||
late LatLngBounds boundsData;
|
||||
getMap(String origin, destination) async {
|
||||
await getCarsLocationByPassenger();
|
||||
@@ -1510,7 +1514,23 @@ class MapPassengerController extends GetxController {
|
||||
double distanceOfTrip = (data[0]['distance']['value']) / 1000;
|
||||
distance = distanceOfTrip;
|
||||
// updateCameraForDistanceAfterGetMap();
|
||||
for (var step in data[0]['steps']) {
|
||||
var startLat = step['start_location']['lat'];
|
||||
var startLng = step['start_location']['lng'];
|
||||
|
||||
var endLat = step['end_location']['lat'];
|
||||
var endLng = step['end_location']['lng'];
|
||||
|
||||
// Calculate heading
|
||||
var y = math.sin(endLng - startLng) * math.cos(endLat);
|
||||
var x = math.cos(startLat) * math.sin(endLat) -
|
||||
math.sin(startLat) * math.cos(endLat) * math.cos(endLng - startLng);
|
||||
var theta = math.atan2(y, x);
|
||||
|
||||
// Add to list
|
||||
headingAngles.add(theta);
|
||||
}
|
||||
print(headingAngles);
|
||||
if (polyLines.isNotEmpty) {
|
||||
clearPolyline();
|
||||
} else {
|
||||
@@ -1851,6 +1871,15 @@ class MapPassengerController extends GetxController {
|
||||
update();
|
||||
}
|
||||
|
||||
initilizeGetStorage() {
|
||||
if (box.read(BoxName.addWork).toString() == '') {
|
||||
box.write(BoxName.addWork, 'addWork');
|
||||
}
|
||||
if (box.read(BoxName.addHome).toString() == '') {
|
||||
box.write(BoxName.addHome, 'addHome');
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void onInit() async {
|
||||
mapAPIKEY = await storage.read(key: BoxName.mapAPIKEY);
|
||||
@@ -1865,6 +1894,7 @@ class MapPassengerController extends GetxController {
|
||||
addCustomStartIcon();
|
||||
addCustomEndIcon();
|
||||
startMarkerReloading();
|
||||
initilizeGetStorage();
|
||||
cardNumber = await SecureStorage().readData(BoxName.cardNumber);
|
||||
|
||||
super.onInit();
|
||||
|
||||
@@ -207,8 +207,13 @@ GetBuilder<MapPassengerController> formSearchPlacesDestenation() {
|
||||
controller.changePickerShown();
|
||||
}));
|
||||
},
|
||||
child: Text(
|
||||
'Work : ${box.read(BoxName.addWork) == 'addWork' ? 'Add Work' : box.read(BoxName.addWork).toString().split(',')[0] + box.read(BoxName.addWork).toString().split(',')[1]} '),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
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]} '),
|
||||
),
|
||||
),
|
||||
InkWell(
|
||||
onLongPress: () {
|
||||
@@ -243,8 +248,13 @@ GetBuilder<MapPassengerController> formSearchPlacesDestenation() {
|
||||
controller.update();
|
||||
}
|
||||
},
|
||||
child: Text(
|
||||
'Home : ${box.read(BoxName.addHome) == 'addHome' ? 'Add Home' : box.read(BoxName.addHome)} '),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: AppColor.yellowColor.withOpacity(.4),
|
||||
border: Border.all()),
|
||||
child: Text(
|
||||
'Home : ${box.read(BoxName.addHome) == 'addHome' ? 'Add Home' : box.read(BoxName.addHome)} '),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:get/get.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
|
||||
import '../../../constant/colors.dart';
|
||||
import '../../../controller/functions/tts.dart';
|
||||
import '../../../controller/home/map_passenger_controller.dart';
|
||||
|
||||
GetBuilder<MapPassengerController> leftMainMenuIcons() {
|
||||
@@ -56,7 +57,27 @@ GetBuilder<MapPassengerController> leftMainMenuIcons() {
|
||||
const SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
// if (Platform.isIOS)
|
||||
if (Platform.isIOS)
|
||||
AnimatedContainer(
|
||||
duration: const Duration(microseconds: 200),
|
||||
width: controller.widthMapTypeAndTraffic,
|
||||
decoration: BoxDecoration(
|
||||
color: AppColor.secondaryColor,
|
||||
border: Border.all(),
|
||||
borderRadius: BorderRadius.circular(15)),
|
||||
child: IconButton(
|
||||
onPressed: () {
|
||||
controller.mapController?.animateCamera(
|
||||
CameraUpdate.newLatLng(LatLng(
|
||||
controller.passengerLocation.latitude,
|
||||
controller.passengerLocation.longitude)));
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.location_on,
|
||||
size: 29,
|
||||
),
|
||||
),
|
||||
),
|
||||
AnimatedContainer(
|
||||
duration: const Duration(microseconds: 200),
|
||||
width: controller.widthMapTypeAndTraffic,
|
||||
@@ -66,13 +87,12 @@ GetBuilder<MapPassengerController> leftMainMenuIcons() {
|
||||
borderRadius: BorderRadius.circular(15)),
|
||||
child: IconButton(
|
||||
onPressed: () {
|
||||
controller.mapController?.animateCamera(
|
||||
CameraUpdate.newLatLng(LatLng(
|
||||
controller.passengerLocation.latitude,
|
||||
controller.passengerLocation.longitude)));
|
||||
final _textToSpeech = TextToSpeech();
|
||||
_textToSpeech.initTts();
|
||||
_textToSpeech.speakText("Hello, world!");
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.location_on,
|
||||
Icons.voice_chat,
|
||||
size: 29,
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user