Я разрабатываю приложение для навигации Flutter, которое использует пакет Flutter_tts для предоставления устных указаний. Однако, когда воспроизводится голосовая инструкция, Spotify (или другая фоновая музыка) полностью останавливается и не возобновится после того, как речь закончится. Но после тестирования на реальном устройстве iOS музыка все еще не возвращается после завершения инструкции.
Я разрабатываю приложение для навигации Flutter, которое использует пакет Flutter_tts для предоставления устных указаний. Однако, когда воспроизводится голосовая инструкция, Spotify (или другая фоновая музыка) полностью останавливается и не возобновится после того, как речь закончится. Но после тестирования на реальном устройстве iOS музыка все еще не возвращается после завершения инструкции.[code] Future _initAudioSession() async {
await _flutterTts.setLanguage(isEnglish() ? "en-US" : "nl-NL"); await _flutterTts.setSpeechRate(0.5); // Of wat voor jouw goed klinkt await _flutterTts.setVolume(1.0); await _flutterTts.setPitch(1.0); }
Future synthesizeSpeechToFile(String text) async { final dir = await getTemporaryDirectory(); final filePath = '${dir.path}/tts_output.wav'; await _flutterTts.synthesizeToFile(text, filePath); print("🎙️ TTS bestand pad: $filePath"); print("🎧 Bestand bestaat: ${File(filePath).existsSync()}"); return filePath;
} Future speakInstruction(String instructionText) async { if (Platform.isIOS) { // iOS ondersteunt synthesizeToFile niet — speel direct af try { await _flutterTts.speak(instructionText); print('✅ [iOS] TTS gesproken via directe speak()'); } catch (e) { print('❌ Fout bij TTS speak(): $e'); } return; }
// Android: gebruik synthesizeToFile() final fileName = instructionText.hashCode.toString(); final dir = await getTemporaryDirectory(); final filePath = '${dir.path}/$fileName.aac';
final result = await _flutterTts.synthesizeToFile( instructionText, filePath, );
if (result == 1) { try { await _audioPlayer.setSourceDeviceFile(filePath); await _audioPlayer.play(DeviceFileSource(filePath)); print('✅ [Android] TTS afgespeeld via audiobestand'); } catch (e) { print('❌ Fout bij afspelen TTS-bestand: $e'); } } else { print('❌ TTS bestand niet gegenereerd (result: $result)'); } } void _startNavigationInstructionUpdates() { if (kDebugMode) { print("🚀 Navigatie gestart, huidige positie: $_currentPosition"); }