Question

Voici un code du formulaire Windows C #

SpeechSynthesizer audio = new SpeechSynthesizer(); 
audio.Speak(textBox1.Text);
  • Cela lire tout ce qui est dans la zone de texte

problème en essayant de mettre en œuvre la pause et d'arrêter le bouton feature.Any ou menuitem ne marche pas obtenir lorsque le code cliqués lit quelque chose

public void button1_Click(object sender, EventArgs e)
    {
        //Nothing gets executed here when the code is reading
    }

Je viens de lire il y a SpeakProgressEventArgs http: // msdn. microsoft.com/en-us/library/system.speech.synthesis.speakprogresseventargs%28VS.85%29.aspx

i essayé synthé ... asyncancel ... mais l'événement de clic du bouton ne marche pas été exécutée

Était-ce utile?

La solution

Utilisez la méthode SpeakAsync () à la place. Cela empêche l'interface utilisateur de bloquer la méthode Speak (), il ne peut pas répondre aux clics de bouton alors qu'il est bloqué. Vous pouvez utiliser SpeakAsyncCancelAll () pour l'empêcher de nattering sur.

Autres conseils

vous devez gérer ce audio.Speak(textBox1.Text); bloc en utilisant Threads

        Thread t = new Thread(() =>
        {
            SpeechSynthesizer audio = new SpeechSynthesizer(); 
            audio.Speak(textBox1.Text);
        });
        t.Start();

Maintenant, comment arrêter un fil conducteur? très bien expliqué dans cette affiche

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top