开发手册 欢迎您!
软件开发者资料库

Silverlight - 视频和音频

Silverlight视频和音频 - 从概述,环境设置,入门,XAML概述,项目类型,固定布局,动态布局,约束与无约束布局,Silverlight和CSS,控件,按钮,内容模型等简单易懂的步骤学习Silverlight ,ListBox,模板,视觉状态,数据绑定,浏览器集成,浏览器外应用程序,应用程序,资源和部署,文件访问,视图模型,输入处理,隔离存储,文本,动画,视频和音频,打印。

在本章中,我们将了解Silverlight工具如何播放视频和音频. MediaElement 是Silverlight中所有视频和音频的核心.这允许您在应用程序中集成音频和视频. MediaElement 类的工作方式与 Image 类类似.你只需将它指向媒体并呈现音频和视频.

主要区别在于它将是一个动态图像,但如果你指向只包含音频的文件而不是视频如MP3,播放时不会在屏幕上显示任何内容.

MediaElement作为UI元素

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

让我们看一个简单的示例 MediaElement .

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

MediaElement App

现在将视频或音频文件拖放到Blend设计界面.

MediaElement Application

它会将MediaElement添加到曲面,并在项目中添加视频文件的副本.你可以在Solution explorer中看到它.

MediaElement To Surface

你可以移动它,改变它的大小,你可以做一些事情,比如应用旋转等.

Rotation

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

                                                        

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

XAML Generate

控制

MediaElement 只是介绍媒体.它不提供任何标准播放器控件.它会自动开始播放并在到达结尾时停止播放,用户无法暂停或以其他方式控制它.因此在实践中,大多数应用程序都希望为用户提供更多控制.

您可以通过将自动播放设置为来禁用自动播放假的.这意味着媒体播放器在您提出要求之前不会播放任何内容.

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

让我们再看看同一个例子并稍微修改它以允许一些控制.在 MediaElement 中附加 MouseLeftButtonDown 处理程序,如下面的XAML代码所示.

                          

这是 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 Generate

再次点击该网页时,它会暂停视频.