Flutter Teleprompter with Voice Control
Overview
A complete Flutter teleprompter app for Android, with an iOS project included. Import a PDF (text extracted with Syncfusion's PDF library), a TXT file or an image, and the importer splits the text into titled sections using an editable header pattern. The prompter scrolls smoothly at an adjustable speed and text size, pauses on touch, and lets you collapse sections. Voice control uses the device speech recogniser: say play or stop, turn on voice following so it scrolls only while you speak, or say take 3 to jump to a section. A second Android phone can act as a remote over Google Nearby Connections. English and Spanish UI, colour and font settings, and branding in one config file. About 2,200 lines of Dart. flutter analyze is clean and 13 tests pass, but the app has not been built or run on a device in this packaged form and iOS has never been built. PDF import depends on Syncfusion, which needs its own licence.
Source preview
final provider = Provider.of<TeleprompterProvider>(context, listen: false);
debugPrint('STT New Words: $newWords');
if (newWords.contains('take')) {
_handleTakeCommand(newWords, provider);
return;
}
if (provider.isVoiceFollowingEnabled) {
if (!provider.isPlaying) {
provider.setPlaying(true);
_startScrolling();
}
_lastVoiceTime = DateTime.now();
} else if (provider.isVoiceEnabled) {
if (newWords.contains('stop') || newWords.contains('pause') || newWords.contains('para')) {
if (provider.isPlaying) {
provider.setPlaying(false);
_stopScrolling();
}
} else if (newWords.contains('start') || newWords.contains('play') || newWords.contains('sigue')) {
if (!provider.isPlaying) {
provider.setPlaying(true);
_startScrolling();
}
}
}Excludes tax, added at checkout where it applies.