📅  最后修改于: 2020-11-19 08:41:34             🧑  作者: Mango
在本章中,我们将看到Silverlight设施如何播放视频和音频。 MediaElement是Silverlight中所有视频和音频的核心。这使您可以在应用程序中集成音频和视频。 MediaElement类的工作方式与Image类类似。您只需将其指向媒体,即可呈现音频和视频。
主要区别在于它将是运动图像,但是如果将其指向仅包含音频而不包含视频的文件(例如MP3),它将播放该文件而不会在屏幕上显示任何内容。
MediaElement派生自框架元素,该元素是所有Silverlight用户界面元素的基类。这意味着它提供了所有标准属性,因此您可以修改其不透明度,设置剪辑或对其进行变换等等。
让我们看一下MediaElement的简单示例。
打开Microsoft Blend for Visual Studio并创建一个新的Silverlight应用程序项目。
现在将视频和音频文件拖动到Blend设计界面中。
它将在表面上添加MediaElement,并在您的项目中添加视频文件的副本。您可以在解决方案资源管理器中看到它。
您可以移动它,更改其大小,可以执行诸如旋转等操作。
现在,它将在MainPage.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 。当您单击网页时,它将开始播放视频。
当您再次单击该网页时,它将暂停视频。