WPF视频使用方法详解

开发 开发工具
WPF视频主要基于MediaPlayer类。那么如何才能正确的使用WPF视频来帮助我们轻松实现相关功能需求呢?在这里将会为大家介绍相关方法。

WPF开发工具的好处是显而易见的,很多开发人员在使用了这一开发工具后,都对自己的程序美观程度上有很大的满足感。WPF视频支持也是基于MediaPlayer类,以及和它相关的MediaElement和MediaTimeline。#t#

由于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播放视频的代码如下:

 

  1. < Grid> 
  2. < MediaElement Source="C:
    "Users"Public"Videos"Sample 
    Videos"
    bear.wmv" Opacity="0.5"> 
  3. < MediaElement.Clip> 
  4. < EllipseGeometry Center="220 220" 
    RadiusX="220" RadiusY="220"/> 
  5. < /MediaElement.Clip> 
  6. < MediaElement.LayoutTransform> 
  7. < RotateTransform Angle="180"/> 
  8. < /MediaElement.LayoutTransform> 
  9. < /MediaElement> 
  10. < MediaElement Source="C:"Users"
    Public"Videos"Sample Videos"
    bear.
    wmv" 
    Opacity="0.5"> 
  11. < MediaElement.Clip> 
  12. < EllipseGeometry Center="220 220" 
    RadiusX="220" RadiusY="220"/> 
  13. < /MediaElement.Clip> 
  14. < /MediaElement> 
  15. < /Grid> 

 

使用两个MediaElement播放同一个视频文件,其中一个做了180度旋转。

 

 

如果要控制视频的播放,可以与MediaTimeline搭配使用,并用PauseStoryboard、ResumeStoryboad等动作进行控制。

WPF视频中需要注意的一个问题,媒体文件不可以是嵌入式资源。MediaPlayer能够理解的路径是绝对路径、相对文件路径或一个URL。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-24 16:36:06

WPF InkCanv

2009-12-25 17:33:19

WPF TextBlo

2009-12-25 17:10:51

WPF动态资源

2009-12-25 17:58:12

WPF进度条

2009-12-02 16:04:44

PHP fsockop

2010-01-28 17:07:03

Android Gal

2010-10-09 10:30:03

JS event

2010-06-01 19:55:30

SVN使用

2010-06-03 17:38:03

Hadoop命令

2009-12-24 17:38:18

WPF事件触发器

2010-01-25 14:10:21

C++堆栈

2010-05-31 11:30:57

SVN使用

2009-11-30 17:43:54

PHP split()

2012-05-11 10:13:54

2009-08-25 16:54:28

C# RichText

2011-05-20 17:05:59

ADO.NET

2011-07-04 14:29:25

Qt Designer 容器

2023-11-10 08:17:01

分布式搜索引擎

2012-05-10 10:53:10

Linuxhistory

2010-01-19 14:50:20

VB.NET集合
点赞
收藏

51CTO技术栈公众号