Silverlight 3 Beta 新特性解析(3) - Media篇
2009-03-23 11:59:52 来源:WEB开发网当然在GPU加速提升视觉效果的同时,是需要付出一些代价的 - CPU,GPU和内存的占用率都会增长
动态控件截图支持:
如下代码所示:
1: <StackPanel Width="600">
2: <MediaElement x:Name="ME" Source="gt_hd.wmv" MouseLeftButtonDown="ME_MouseLeftButtonDown"/>
3: <controls:WrapPanel x:Name="ThumbnailsPanel"></controls:WrapPanel>
4: </StackPanel>
我们有个播放视频的MediaElement
下面的WrapPanel将被用来存放动态截图
截图过程将通过鼠标左键点击视频的动作来触发,这个动作的代码如下:
1: private void ME_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
2: {
3: int width = 600;
4: int height = 600 * ME.NaturalVideoHeight / ME.NaturalVideoWidth;
5:
6: WriteableBitmap wBitmap = new WriteableBitmap(width, height, PixelFormats.Bgr32);
7: wBitmap.Render(this.ME, new MatrixTransform());
8:
9: Image img = new Image();
10: img.Width = 140;
11: img.Margin = new Thickness(5);
12: img.Source = wBitmap;
13:
14: this.ThumbnailsPanel.Children.Add(img);
15: }
这里传给WriteableBitmap的width和height是有考究的
其设置的尺寸如果大于当前控件(我们这里是一段视频)的实际显示尺寸,其他区域将用白色填充
而第7行的new MatrixTransform()代表我们从左上角算截图的起点
当然你也可以位移一段距离(TranslateTransform)或者旋转一定得角度(RotateTransform)等等变换来设置你的截图的起点
非常实用的一个特性
Media的新的特性还包括可以动态创建自己的视频和音频
其原理和WriteableBitmap差不多
但是其复杂性提高了很多
我将在后面专题做一个介绍
系列文章:
Silverlight 3 Beta 新特性解析(1) - 概论
Silverlight 3 Beta 新特性解析(2)-Graphics篇
Silverlight 3 Beta 新特性解析(4) - 离线功能篇
Tags:Silverlight 特性
编辑录入:爽爽 [复制链接] [打 印]- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››Silverlight for Symbian
- ››Silverlight3系列(四)数据绑定 Data Binding 1
- ››silverlight2 游戏 1 你能坚持多少秒
- ››Silverlight开发实践--PicZoomShow
- ››Silverlight自定义控件开发 - 令人懊恼的OnApplyT...
- ››Silverlight 2 RTW中ToolTipService.ToolTip不继承...
更多精彩
赞助商链接