Skip to content

Instantly share code, notes, and snippets.

View Develop-Bot-AI's full-sized avatar

Develop-Bot-AI

View GitHub Profile
I/flutter (30593): AudioController: Service state changed to TtsState.idle
I/flutter (30593): AudioController: State update START - OLD: TtsState.playing -> NEW: TtsState.idle
I/flutter (30593): AudioController: BEFORE reset - currentId: romanos831RVR1960, isActive: true, operationInProgress: false
I/flutter (30593): AudioController: IMMEDIATE idle reset
I/flutter (30593): AudioController: AFTER idle reset - currentId: null, currentState: TtsState.idle, isActive: false, operationInProgress: false
I/flutter (30593): AudioController: Ignorando progress update - estado idle (local: TtsState.idle, service: TtsState.idle)
I/flutter (30593): AudioController: Microtask notification for idle reset
I/flutter (30593): AudioController: isDevocionalPlaying(romanos831RVR1960) - Checking...
I/flutter (30593): Local: currentId=romanos831RVR1960, state=TtsState.playing, isActive=true, operationInProgress=false
I/flutter (30593): Service: currentId=null, state=TtsState.idle
import 'dart:async';
import 'package:devocional_nuevo/models/devocional_model.dart';
import 'package:devocional_nuevo/services/tts_service.dart';
import 'package:flutter/widgets.dart';
/// AudioController refactorizado como proxy reactivo puro
/// Eliminado estado local duplicado - solo retransmite estados del TtsService
class AudioController extends ChangeNotifier {
final TtsService _ttsService = TtsService();
import 'dart:async';
import 'dart:developer' as developer;
import 'dart:io' show Platform;
import 'package:devocional_nuevo/models/devocional_model.dart';
import 'package:devocional_nuevo/services/localization_service.dart';
import 'package:devocional_nuevo/services/spiritual_stats_service.dart';
import 'package:devocional_nuevo/services/tts/bible_text_formatter.dart';
import 'package:devocional_nuevo/services/tts/voice_settings_service.dart';
import 'package:flutter/foundation.dart';
import 'dart:async';
import 'dart:developer' as developer;
import 'dart:io' show Platform;
import 'package:devocional_nuevo/models/devocional_model.dart';
import 'package:devocional_nuevo/services/localization_service.dart';
import 'package:devocional_nuevo/services/spiritual_stats_service.dart';
import 'package:devocional_nuevo/services/tts/bible_text_formatter.dart';
// ✅ AGREGADO: Import de SpecializedTextNormalizer
.MainActivity', { action=ACTION_UP, id[0]=0, pointerCount=1, eventTime=918637644, downTime=918637611, phoneEventTime=17:01:45.724 } moveCount:3
I/flutter (24596): TtsPlayerWidget: Button pressed - currentState: TtsState.idle, isThisDevocional: false
I/flutter (24596): 🎵 AudioController: playDevotional(efesios5_1_2RVR1960) called
I/flutter (24596): 🎵 Current state before play: currentId=null, state=TtsState.idle, isActive=false
I/flutter (24596): AudioController: Starting operation: playDevotional
I/flutter (24596): 🎤 TTS: Starting devotional efesios5_1_2RVR1960 at 2025-09-05 17:01:45.785278
I/flutter (24596): 📝 TTS: Generated 14 chunks for language es
I/flutter (24596): 0: Versículo:: Efesios capítulo 5 versículo 1-Segundo...
I/flutter (24596): 1: Reflexión::
I/flutter (24596): 2: La exhortación de Pablo en Efesios capítulo 5 vers...
import 'dart:async';
import 'dart:developer' as developer;
import 'dart:io' show Platform;
import 'package:devocional_nuevo/models/devocional_model.dart';
import 'package:devocional_nuevo/services/localization_service.dart';
import 'package:devocional_nuevo/services/spiritual_stats_service.dart';
import 'package:devocional_nuevo/services/tts/bible_text_formatter.dart';
// ✅ AGREGADO: Import de SpecializedTextNormalizer
import 'package:devocional_nuevo/services/tts/specialized_text_normalizer.dart';
🌐 TTS: Language context set to es (RVR1960)
⚠️ TTS: Cannot update language - service not initialized
[BibleTextFormatter] formatBibleBook called with reference="1 Juan", language="es"
[BibleTextFormatter] formatBibleBook called with reference="2 Pedro", language="es"
[BibleTextFormatter] formatBibleBook called with reference="3 Juan", language="es"
🌐 TTS: Language context set to en (KJV)
🔄 TTS: Syncing localization service to language context en
⚠️ TTS: Cannot update language - service not initialized
[BibleTextFormatter] formatBibleBook called with reference="1 John", language="en"
[BibleTextFormatter] formatBibleBook called with reference="2 Corinthians", language="en"
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter_tts/flutter_tts.dart';
enum TtsState { idle, initializing, playing, paused, stopping, error }
/// Audio playback management for TTS
/// Optimized with successful logic from backup for fluid chunk transitions
class TtsAudioPlayer {
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter_tts/flutter_tts.dart';
enum TtsState { idle, initializing, playing, paused, stopping, error }
/// Audio playback management for TTS
/// Optimized with successful logic from backup for fluid chunk transitions
class TtsAudioPlayer {
1
/// Language-specific text normalization for TTS
/// Handles ordinal numbers, abbreviations, and other language-specific formatting
class LanguageTextNormalizer {
/// Get ordinal word for a number based on language
static String getOrdinal(int number, String language) {
try {
switch (language) {
case 'en':