📜  Silverlight-视频和音频

📅  最后修改于: 2020-11-19 08:41:34             🧑  作者: Mango


在本章中,我们将看到Silverlight设施如何播放视频和音频。 MediaElement是Silverlight中所有视频和音频的核心。这使您可以在应用程序中集成音频和视频。 MediaElement类的工作方式与Image类类似。您只需将其指向媒体,即可呈现音频和视频。

主要区别在于它将是运动图像,但是如果将其指向仅包含音频而不包含视频的文件(例如MP3),它将播放该文件而不会在屏幕上显示任何内容。

MediaElement作为UI元素

MediaElement派生自框架元素,该元素是所有Silverlight用户界面元素的基类。这意味着它提供了所有标准属性,因此您可以修改其不透明度,设置剪辑或对其进行变换等等。

让我们看一下MediaElement的简单示例。

打开Microsoft Blend for Visual Studio并创建一个新的Silverlight应用程序项目。

MediaElement应用

现在将视频和音频文件拖动到Blend设计界面中。

MediaElement应用

它将在表面上添加MediaElement,并在您的项目中添加视频文件的副本。您可以在解决方案资源管理器中看到它。

MediaElement到表面

您可以移动它,更改其大小,可以执行诸如旋转等操作。

回转

现在,它将在MainPage.xaml文件中为您生成相关的XAML,如下所示。


   
   
    
      
            
          
            
          
            
        
        
    
    

编译并执行上述应用程序后,您将看到视频正在您的网页上播放。

XAML生成

控制性

MediaElement仅表示媒体。它不提供任何标准的播放器控件。它会自动开始播放,并在播放结束时停止播放,用户无法执行任何操作来暂停或控制它。因此,实际上大多数应用程序都希望为用户提供更多控制权。

您可以通过将AutoPlay设置为False来禁用自动播放。这意味着媒体播放器在您询问之前不会播放任何内容。


因此,当您要播放视频时,只需调用MediaElement Play()方法即可。它还提供了停止和暂停方法。

让我们再次查看同一示例,并对其进行一些修改以允许进行一些控制。如下面的XAML代码所示,将MouseLeftButtonDown处理程序附加到MediaElement中。


   
    
    
       
        
        
    
    

这是MouseLeftButtonDown事件处理程序的实现,它将检查媒体元素的当前状态是否为电镀,然后将暂停视频,否则将开始播放视频。

using System.Windows.Controls; 
using System.Windows.Input; 
using System.Windows.Media;

namespace MediaElementDemo { 

   public partial class MainPage : UserControl {
    
      public MainPage() { 
         InitializeComponent(); 
      }  
        
      private void Microsoft_Silverlight_DEMO_mp4_MouseLeftButtonDown
         (object sender, MouseButtonEventArgs e) {
        
         if (Microsoft_Silverlight_DEMO_mp4.CurrentState == MediaElementState.Playing) { 
            Microsoft_Silverlight_DEMO_mp4.Pause(); 
         } else { 
            Microsoft_Silverlight_DEMO_mp4.Play(); 
         } 
      } 
   } 
}

编译并执行上述代码后,您将看到空白网页,因为我们将AutoPlay属性设置为False 。当您单击网页时,它将开始播放视频。

自动播放生成

当您再次单击该网页时,它将暂停视频。