playWord method

Future<void> playWord(
  1. WordRef ref
)

تشغيل كلمة واحدة.

Implementation

Future<void> playWord(WordRef ref) async {
  if (!isInitialized) return;
  final isConnected = InternetConnectionController.instance.isConnected;

  if (isConnected) {
    try {
      // إيقاف أي تشغيل سابق
      await stop();

      isLoading.value = true;
      currentPlayingRef.value = ref;
      isPlayingAyahWords.value = false;

      final url = _buildWordUrl(
        surahNumber: ref.surahNumber,
        ayahNumber: ref.ayahNumber,
        wordNumber: ref.wordNumber,
      );
      await _audioPlayer.setAudioSource(AudioSource.uri(Uri.parse(url)));

      isLoading.value = false;
      isPlaying.value = true;

      _listenForCompletion();
      await _audioPlayer.play();
    } catch (e) {
      log('WordAudioService.playWord error: $e', name: 'WordAudioService');
      isLoading.value = false;
      isPlaying.value = false;
      currentPlayingRef.value = null;
    }
  } else {
    ToastUtils().showToast(
      Get.context!,
      'لا يوجد اتصال بالإنترنت',
    );
  }
}