playWord method
تشغيل كلمة واحدة.
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!,
'لا يوجد اتصال بالإنترنت',
);
}
}