📜  WPF-多媒体

📅  最后修改于: 2020-11-18 10:01:13             🧑  作者: Mango


WPF应用程序使用MediaElement支持视频和音频。它允许您将音频和视频集成到应用程序中。 MediaElement类的工作方式与Image类类似。您只需将其指向媒体并对其进行渲染。主要区别在于它将是运动图像,但是如果将其指向仅包含音频而不包含视频的文件(例如MP3),它将播放该文件而不会在屏幕上显示任何内容。

WPF根据机器配置支持所有类型的视频/音频格式。如果媒体文件播放媒体播放器,则它也将在同一台计算机上的WPF中工作。

让我们举一个例子来了解如何在您的应用程序中集成多媒体。

  • 创建一个名为WPFMultimedia的新WPF项目。

  • 以下XAML代码创建一个media元素和三个按钮,并使用一些属性对其进行初始化。

 
    
    
       
          
         
             
            
             
          
      
    
    

这是C#中不同按钮的Click事件实现。

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"; 
         } 
      } 
   } 
}

当您编译并执行上述代码时,将产生以下窗口。您可以使用三个按钮播放视频并控制其播放。

多媒体

使用按钮可以暂停,静音和播放视频。

语音合成器

WPF具有将文本转换为语音的功能。此API包含在System.Speech命名空间中。 SpeechSynthesizer类将文本转换为语音。

让我们看一个简单的例子。

  • 创建一个名为WPFTextToSpeech的新WPF项目。

  • 我们将需要添加System.Speech程序集作为引用,以使SpeechSynthesizer类正常工作。

  • 右键单击参考,然后选择添加参考。

WPF文字转语音

  • “参考管理器”对话框将打开。现在选中System.Speech复选框

参考管理器对话框

  • 单击确定按钮。您可以在参考中看到System.Speech程序集。

系统语音

  • 现在,将一个按钮和一个文本框从工具箱拖动到设计窗口中。

  • 以下XAML代码创建一个按钮和一个文本框,并使用一些属性对其进行初始化。

 
    
    
       
            
       
    
    
 
  • 这是C#中的简单实现,它将文本框内的Text转换为语音。

using System.Speech.Synthesis; 
using System.Windows; 
 
namespace WPFTextToSpeech { 
   ///  
      /// Interaction logic for MainWindow.xaml 
   ///  
    
   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!");
         } 
      } 
   }
} 

当您编译并执行上述代码时,将产生以下窗口。现在,在文本框中键入Hello World并单击“讲话”按钮。

多媒体输出1

它将产生声音“ Hello World”。如果您在文本框中未输入任何内容,则它将闪烁以下消息。

多媒体输出2

我们建议您执行以上示例。