Esempio n. 1
0
        void Recite()
        {
            switch ((ClickMode)CurrentState.CtlSetting.ClickMode)
            {
            case ClickMode.Recite:
                var    rec      = BLL.quran_data.getReciter(CurrentState.ReciterId);
                string _Prefix  = rec.mediaurl;
                string SurahKey = CurrentState.Surah.ToString().PadLeft(3, '0');
                string AyahKey  = CurrentState.Ayah.ToString().PadLeft(3, '0');
                string MediaUrl = string.Format(_Prefix, SurahKey, AyahKey);
                if (!CurrentState.isPlaying)
                {
                    CurrentState.isPlaying = true;
                }
                else
                {
                    QuranPlayer.Stop();
                }
                string NamaFile  = string.Format("{0}_{1}.mp3", SurahKey, AyahKey);
                string SubFolder = string.Format("reciter_{0}", rec.idx);
                string UrlMedia  = null;
                if (InternetState)
                {
                    UrlMedia = MediaDownloader.DownloadAndPlay(MediaUrl, SubFolder, NamaFile);
                }
                else
                {
                    UrlMedia = MediaDownloader.CheckOfflineMedia(MediaUrl, SubFolder, NamaFile);
                }
                if (!string.IsNullOrEmpty(UrlMedia))
                {
                    QuranPlayer.Source = new Uri(UrlMedia, UriKind.RelativeOrAbsolute);
                    QuranPlayer.Play();
                }
                break;

            case ClickMode.ReadTranslation:
                //only english
                if (CurrentState.LanguageId == 11)
                {
                    BLL.quran_data.AyahData item = (BLL.quran_data.AyahData)CurrentState.CtlAyah.ListData.SelectedItem;
                    speechSynthesizer.SpeakAsync(item.translation);
                }
                break;
            }
        }
Esempio n. 2
0
        void StopBtn_Click(object sender, RoutedEventArgs e)
        {
            switch ((ClickMode)CurrentState.CtlSetting.ClickMode)
            {
            case ClickMode.Recite:
                if (CurrentState.isPlaying)
                {
                    QuranPlayer.Stop();
                    CurrentState.isPlaying = false;
                }
                break;

            case ClickMode.ReadTranslation:
                //isSpeaking = false;
                speechSynthesizer.SpeakAsyncCancelAll();
                break;
            }
        }
Esempio n. 3
0
        async void InitQuran()
        {
            //setup state
            CurrentState = new QuranState();

            //setup data from config
            CurrentState.config     = new Konfigurasi();
            CurrentState.Ayah       = CurrentState.config.AyahLastOpen;
            CurrentState.Surah      = CurrentState.config.SurahLastOpen;
            CurrentState.LanguageId = CurrentState.config.LanguageLastOpen;
            CurrentState.ReciterId  = CurrentState.config.ReciterLastOpen;
            CurrentState.Juz        = CurrentState.config.JuzLastOpen;

            //speech synth
            speechSynthesizer = new SpeechSynthesizer();
            speechSynthesizer.SelectVoiceByHints(VoiceGender.Female);
            speechSynthesizer.Volume          = Convert.ToInt32(CurrentState.config.Volume * 100);
            speechSynthesizer.SpeakCompleted += speechSynthesizer_SpeakCompleted;

            //setup setting
            CurrentState.CtlSetting = new ListSetting();
            ExpanderSetting.Content = CurrentState.CtlSetting;
            //get configuration from config
            CurrentState.CtlSetting.setVolume(CurrentState.config.Volume);
            CurrentState.CtlSetting.setVerseSize(CurrentState.config.VerseSize);
            CurrentState.CtlSetting.setClickMode(CurrentState.config.ClickMode);
            CurrentState.CtlSetting.setPlayMode(CurrentState.config.PlayMode);
            CurrentState.CtlSetting.setVoice(CurrentState.config.isVoiceEnable);
            CurrentState.CtlSetting.setGesture(CurrentState.config.isGestureEnable);
            CurrentState.CtlSetting.setAutoShutdown(CurrentState.config.isAutoShutdownEnable);
            CurrentState.CtlSetting.VerseChangeEvent  += CtlSetting_VerseChangeEvent;
            CurrentState.CtlSetting.VolumeChangeEvent += CtlSetting_VolumeChangeEvent;

            //setup expander
            var Jz = BLL.quran_data.getJuz(CurrentState.Juz);

            setExpanderTitle(ExpanderJuz, "Juzlbl", "Selected Juz: " + Jz.idx + ". " + Jz.name);

            var Rct = BLL.quran_data.getReciter(CurrentState.ReciterId);

            setExpanderTitle(ExpanderReciter, "Reciterlbl", Rct.name);

            var Lng = BLL.quran_data.getLanguage(CurrentState.LanguageId);

            setExpanderTitle(ExpanderLanguage, "Langlbl", Lng.lang);

            //player state
            CurrentState.isPlaying       = false;
            QuranPlayer.LoadedBehavior   = MediaState.Manual;
            QuranPlayer.UnloadedBehavior = MediaState.Stop;
            //QuranPlayer.Volume = CurrentState.config.Volume;
            QuranPlayer.Stop();
            Binding volBInding = new Binding("Volume");

            volBInding.Source = CurrentState.CtlSetting;
            QuranPlayer.SetBinding(MediaElement.VolumeProperty, volBInding);

            //setup language
            CurrentState.CtlLanguage        = new ListLanguage();
            CurrentState.CtlLanguage.Height = 250;
            CurrentState.CtlLanguage.LanguageSelectEvent += CtlLanguage_LanguageSelectEvent;
            ExpanderLanguage.Content = CurrentState.CtlLanguage;

            //setup reciter
            CurrentState.CtlReciter                     = new ListReciter();
            CurrentState.CtlReciter.Height              = 250;
            CurrentState.CtlReciter.ReciterSelectEvent += CtlReciter_ReciterSelectEvent;
            ExpanderReciter.Content                     = CurrentState.CtlReciter;

            //setup juz
            CurrentState.CtlJuz                 = new ListJuz();
            CurrentState.CtlJuz.Height          = 250;
            CurrentState.CtlJuz.JuzSelectEvent += CtlJuz_JuzSelectEvent;
            ExpanderJuz.Content                 = CurrentState.CtlJuz;

            //setup surah
            CurrentState.CtlSurah = new ListSurah();
            CurrentState.CtlSurah.SurahSelectEvent += CtlSurah_SurahSelectEvent;
            CurrentState.CtlSurah.Height            = 250;
            ExpanderSurah.Content = CurrentState.CtlSurah;
            CurrentState.CtlSurah.LoadSurah(CurrentState.Juz);

            //setup ayah
            CurrentState.CtlAyah = new ListAyah();
            CurrentState.CtlAyah.AyahSelectEvent += CtlAyah_AyahSelectEvent;

            AyahPanel.Children.Add(CurrentState.CtlAyah);

            //select last opened ayah
            LoadSpecificSurah(CurrentState.Surah, CurrentState.Ayah);
            CurrentState.CtlAyah.SetItemAyah(CurrentState.Ayah - 1, Brushes.Red, true, false);

            //load bookmark
            CurrentState.CtlBookmark = new ListBookmark();
            CurrentState.CtlBookmark.BookmarkSelectEvent += CtlBookmark_BookmarkSelectEvent;
            CurrentState.CtlBookmark.Height = 250;
            ExpanderBookmark.Content        = CurrentState.CtlBookmark;

            //Internet check
            InternetState = await QFE.WPF.Tools.Internet.CheckConnection(CurrentState.config.UrlRecitation);

            if (!InternetState)
            {
                MessageBox.Show("No Internet connection.", "Warning");
            }
        }