loadData method
Implementation
Future<void> loadData() async {
if (_rawJson != null) return;
final String phonemeData;
if (phonemeJsonString != null && phonemeJsonString!.isNotEmpty) {
phonemeData = phonemeJsonString!;
} else if (phonemeFilePath != null) {
if (!kIsWeb && File(phonemeFilePath!).existsSync()) {
phonemeData = await File(phonemeFilePath!).readAsString();
} else if (kIsWeb ||
phonemeFilePath!.startsWith('assets/') ||
phonemeFilePath!.startsWith('packages/')) {
phonemeData = await rootBundle.loadString(phonemeFilePath!);
} else {
phonemeData = await File(phonemeFilePath!).readAsString();
}
} else {
phonemeData = await _loadFromBundle();
}
// Decode synchronously on the main isolate.
_rawJson = jsonDecode(phonemeData) as Map<String, dynamic>;
}