WPF - Multimedia

Le applicazioni WPF supportano video e audio utilizzando MediaElement. Ti consente di integrare audio e video in un'applicazione. La classe MediaElement funziona in modo simile alla classe Image. Devi solo puntarlo sui media e questo lo rende. La differenza principale è che sarà un'immagine in movimento, ma se la punti al file che contiene solo audio e nessun video come un MP3, la riprodurrà senza mostrare nulla sullo schermo.

WPF supporta tutti i tipi di formato video / audio a seconda della configurazione della macchina. Se un file multimediale riproduce un lettore multimediale, funzionerà anche in WPF sulla stessa macchina.

Esempio

Facciamo un esempio per capire come integrare la multimedialità nella tua applicazione.

  • Crea un nuovo progetto WPF con il nome WPFMultimedia.

  • Il codice XAML seguente crea un elemento multimediale e tre pulsanti e li inizializza con alcune proprietà.

<Window x:Class = "WPFMultimedia.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   xmlns:local = "clr-namespace:WPFMultimedia" 
   mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> 
	
   <Grid> 
      <StackPanel HorizontalAlignment = "Center" VerticalAlignment = "Center"> 
         <MediaElement Name = "myMedia" Source = "D:\MicrosoftMVA.mp4" 
            LoadedBehavior = "Manual" Width = "591" Height = "274" /> 
         <StackPanel Orientation = "Horizontal" Margin = "0,10,0,0">
            <Button Content = "Play" Margin = "0,0,10,0" Padding = "5" Click = "mediaPlay" /> 
            <Button Content = "Pause" Margin = "0,0,10,0" Padding = "5" Click = "mediaPause" />
            <Button x:Name = "muteButt" Content = "Mute" Padding = "5" Click = "mediaMute" /> 
         </StackPanel> 
      </StackPanel>
   </Grid> 
	
</Window>

Ecco l'implementazione degli eventi Click in C # per pulsanti diversi.

using System; 
using System.Windows; 
 
namespace WPFMultimedia { 

   public partial class MainWindow : Window { 
	
      public MainWindow() { 
         InitializeComponent(); 
         myMedia.Volume = 100; 
         myMedia.Play(); 
      } 
		
      void mediaPlay(Object sender, EventArgs e) { 
         myMedia.Play(); 
      }  
		
      void mediaPause(Object sender, EventArgs e) { 
         myMedia.Pause();
      } 
		
      void mediaMute(Object sender, EventArgs e) { 
		
         if (myMedia.Volume == 100) { 
            myMedia.Volume = 0; 
            muteButt.Content = "Listen"; 
         } 
         else { 
            myMedia.Volume = 100; 
            muteButt.Content = "Mute"; 
         } 
      } 
   } 
}

Quando compili ed esegui il codice sopra, verrà prodotta la seguente finestra. È possibile riprodurre il video e controllarne la riproduzione con i tre pulsanti.

Con i pulsanti puoi mettere in pausa, disattivare l'audio e riprodurre il video.

Sintetizzatore vocale

WPF dispone di funzionalità per convertire il testo in parlato. Questa API è inclusa nello spazio dei nomi System.Speech.SpeechSynthesizer class trasforma il testo in parole pronunciate.

Esempio

Diamo un'occhiata a un semplice esempio.

  • Crea un nuovo progetto WPF con il nome WPFTextToSpeech.

  • Avremo bisogno dell'assembly System.Speech da aggiungere come riferimento per SpeechSynthesizer classe al lavoro.

  • Fare clic con il tasto destro su Riferimenti e selezionare Aggiungi riferimento.

  • Si aprirà la finestra di dialogo Gestione riferimenti. Ora seleziona la casella di controllo System.Speech

  • Fare clic sul pulsante Ok. Puoi vedere l'assembly System.Speech nei tuoi riferimenti.

  • Ora trascina un pulsante e una casella di testo nella finestra di progettazione dalla casella degli strumenti.

  • Il codice XAML seguente crea un pulsante e una casella di testo e li inizializza con alcune proprietà.

<Window x:Class = "WPFTextToSpeech.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   xmlns:local = "clr-namespace:WPFTextToSpeech"
   mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> 
	
   <Grid> 
      <Button x:Name = "button" Content = "Speak"  
         HorizontalAlignment = "Left" Margin = "218,176,0,0"  
         VerticalAlignment = "Top" Width = "75"/> 
			
      <TextBox x:Name = "textBox" HorizontalAlignment = "Left"  
         Height = "23" Margin = "60,104,0,0" TextWrapping = "Wrap"  
         VerticalAlignment = "Top" Width = "418"/> 
   </Grid> 
	
</Window>
  • Ecco la semplice implementazione in C # che convertirà il testo all'interno della casella di testo in parole pronunciate.

using System.Speech.Synthesis; 
using System.Windows; 
 
namespace WPFTextToSpeech { 
   /// <summary> 
      /// Interaction logic for MainWindow.xaml 
   /// </summary> 
	
   public partial class MainWindow : Window { 
	
      public MainWindow() { 
         InitializeComponent(); 
      } 
		
      private void button_Click(object sender, RoutedEventArgs e) { 
		
         if (textBox.Text != "") {
            SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(); 
            speechSynthesizer.Speak(textBox.Text);  
         } 
         else { 
            MessageBox.Show("Write some thing in the textbox!");
         } 
      } 
   }
}

Quando compili ed esegui il codice sopra, verrà prodotta la seguente finestra. Ora, digita Hello World nella casella di testo e fai clic sul pulsante Parla.

Produrrà il suono "Hello World". Se non digiti nulla nella casella di testo, lampeggerà il seguente messaggio.

Ti consigliamo di eseguire gli esempi precedenti.