WPF中的视频——(1)
WPF的视频支持也是基于MediaPlayer类,以及和它相关的MediaElement和MediaTimeline。由于MediaPlayer是基于Windows Media Player 10 或更高版本,因此,只要Windows Media Player能播放的视频格式(如.wmv, .avi, .mpg等),在MediaPlayer或MediaElement中都能播放(前提是系统中必须安装Windows Media Player 10 或更高)。
WPF中视频的播放和音频有些相似(在用MediaElement时候),通过设置Source属性为视频文件即可。如果使用MediaPlayer,由于视频的播放需要显示窗口,而MediaPlayer是为程序代码设计的(不参与UI显示),要显示MediaPlayer加载的媒体,必须使用VideoDrawing或DrawingContext(在(2)中再描述)。
用MediaElement播放视频的代码如下:
<Grid>
<MediaElement Source="C:"Users"Public"Videos"Sample Videos"bear.wmv" Opacity="0.5">
<MediaElement.Clip>
<EllipseGeometry Center="220 220" RadiusX="220" RadiusY="220"/>
</MediaElement.Clip>
<MediaElement.LayoutTransform>
<RotateTransform Angle="180"/>
</MediaElement.LayoutTransform>
</MediaElement>
<MediaElement Source="C:"Users"Public"Videos"Sample Videos"bear.wmv" Opacity="0.5">
<MediaElement.Clip>
<EllipseGeometry Center="220 220" RadiusX="220" RadiusY="220"/>
</MediaElement.Clip>
</MediaElement>
</Grid>
使用两个MediaElement播放同一个视频文件,其中一个做了180度旋转,显示的效果如下图所示:
如果要控制视频的播放,可以与MediaTimeline搭配使用,并用PauseStoryboard、ResumeStoryboad等动作进行控制。
需要注意的一个问题,媒体文件不可以是嵌入式资源。MediaPlayer能够理解的路径是绝对路径、相对文件路径或一个URL。