Example #1
0
        internal virtual void ExecutarWAVSync(FalaModel model, Delegate callbackFalaFinalizada = null)
        {
            var player = new SoundPlayer
            {
                SoundLocation = model.TextoParaFala
            };

            player.Load();
            player.PlaySync();
            callbackFalaFinalizada?.DynamicInvoke(model);
        }
Example #2
0
 void FinalizarComentarioCallback(FalaModel model)
 {
     if (model != null)
     {
         var tuppleLookUp = this.Falas.ToLookup(fala => fala.Item1.ID);
         if (tuppleLookUp.Any())
         {
             var tupple = tuppleLookUp[model.ID];
             this.Falas.Remove(tupple.First());
         }
     }
     this.IsExecutandoAudio = false;
 }
Example #3
0
        internal virtual void ExecutarAudioAsync(FalaModel model, Delegate callbackFalaFinalizada = null)
        {
            if (model.TextoPrompFala == null && string.IsNullOrEmpty(model.TextoParaFala))
            {
                return;
            }

            var sintetizador = new SpeechSynthesizer
            {
                Volume = 100
            };

            sintetizador.SelectVoice("Microsoft Maria Desktop");
            sintetizador.SetOutputToDefaultAudioDevice();
            sintetizador.SpeakCompleted += (speakersender, se) =>
            {
                if (EncadeiaReacao)
                {
                    var player = new SoundPlayer();
                    player.LoadCompleted += (playersender, pe) =>
                    {
                        var sp = (SoundPlayer)playersender;
                        if (sp.IsLoadCompleted)
                        {
                            sp.Play();
                            callbackFalaFinalizada?.DynamicInvoke(model);
                        }
                    };
                    var audios         = AudiosList.ObterReacoes();
                    var audioAleatorio = new Random().Next(audios.Count);
                    var audio          = audios[audioAleatorio];
                    player.SoundLocation = audio;
                    player.LoadAsync();
                }
                else
                {
                    callbackFalaFinalizada?.DynamicInvoke(model);
                }
            };

            if (!string.IsNullOrEmpty(model.TextoParaFala))
            {
                sintetizador.SpeakAsync(model.TextoParaFala);
            }
            else if (model.TextoPrompFala != null)
            {
                sintetizador.SpeakAsync(model.TextoPrompFala);
            }
        }
Example #4
0
        internal virtual void ExecutarWAVAsync(FalaModel model, Delegate callbackFalaFinalizada = null)
        {
            var player = new SoundPlayer();

            player.LoadCompleted += (playersender, pe) =>
            {
                var sp = (SoundPlayer)playersender;
                if (sp.IsLoadCompleted)
                {
                    sp.Play();
                    callbackFalaFinalizada?.DynamicInvoke(model);
                }
            };
            player.SoundLocation = model.TextoParaFala;
            player.LoadAsync();
        }
Example #5
0
 public void Falar(FalaModel model, Delegate notificarBotCallback = null, Delegate notificarErroBotCallback = null)
 {
     CallbackModel = new CallbackModel
     {
         ChannelName = BotAppSettings.ChannelName,
         Mensagem    = "Eu não sei falar isso ainda"
     };
     try
     {
         notificarBotCallback?.DynamicInvoke(CallbackModel);
     }
     catch
     {
         CallbackModel.Mensagem = $"deu pau... {EmotesConsts.NotLikeThis}";
         notificarErroBotCallback?.DynamicInvoke(CallbackModel);
     }
 }
Example #6
0
 public void Falar(FalaModel model, Delegate notificarBotCallback = null, Delegate notificarErroBotCallback = null)
 {
     this.Falas.Add(Tuple.Create(model, notificarBotCallback, notificarErroBotCallback));
 }