Windows Phone 7 实现视频播放
Windows Phone 7实现视频播放需要添加MediaElement控件。在xaml中添加如下代码:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <MediaElement x:Name="media" HorizontalAlignment="Stretch" AutoPlay="True"VerticalAlignment="Stretch" Stretch="Uniform"/> </Grid>
以上代码表示在Grid中添加了一个MediaElement控件。
两个重要的属性设置:
Stretch属性:非常重要,尤其是在使用多媒体元素,例如图片。拉伸确定了内容如何被重新调整大小来填满它的已经分配的空间。拉伸可能的选项有:
◦ None – 内容保存原来的大小
◦ Fill -内容被调整大小来填满整个尺寸而不去保存屏幕的高宽比
◦ Uniform -内容被调整大小来填充到目标尺寸即所能达到的终点,而它会保存其原有的屏幕高宽比
◦ UniformToFill -内容被调整大小来填充到目标,它会保存其原有的屏幕高宽比,如果需要,内容将会被裁剪来满足要求。
以上是代码实现的方式,同时也可以手动拖动控件,进行布局的设计。
AutoPlay属性:表示视频是否自动播放。
添加MediaElement 控件之后便要在页面加载的时候加载视频,因此添加 页面的 Loaded 事件,一般在页面的构造函数中注册Loaded事件。代码如下:
public Video() { InitializeComponent(); this.Loaded += new RoutedEventHandler(Video_Loaded);//双击TAB键自动生成响应函数。 }
注册事件之后便可以写视频的播放代码了,代码如下:
private void Video_Loaded(object sender, RoutedEventArgs e) { if (NavigationContext.QueryString.Count > 0) { try { //设置视频的源文件路径,即要播放的视频路径 myVideo.Source = new Uri(NavigationContext.QueryString["VideoUrl"], UriKind.Relative); //设置视频的位置 myVideo.Position = TimeSpan.FromMilliseconds(0); //播放视频 myVideo.Play(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } }
以上代码完成之后,需要完成导航到播放视频页面的代码。
在主页面(本文设置为MainPage.xaml)
我们使用别名导航方式导航到视频播放页面,并需要传递一个参数,该参数用来传递播放视频的相对路径。在App.XAML中添加如下代码:
<Application.Resources> <nav:UriMapper x:Key="UriMapper"> <nav:UriMapper.UriMappings> <nav:UriMapping Uri="MyVideo/{myvideo}" MappedUri="/Views/Video/Video.xaml?VideoUrl=Resouces/Video/{myvideo}" /> </nav:UriMapper.UriMappings> </nav:UriMapper> </Application.Resources>
之后在App.xaml.cs中添加如下代码:
this.RootFrame.UriMapper = Resources["UriMapper"] as UriMapper;
以上步骤完成之后,就只差导航的代码了。
我们再添加一个HyperlinkButton控件,代码如下:
<HyperlinkButton Content="影视" Height="30" HorizontalAlignment="Left" Margin="102,74,0,0" Name="VideohyperlinkButton" VerticalAlignment="Top" Width="200" NavigateUri="MyVideo/video2.wmv" />
以上代码表示我们传递了一个路径为Resouces/Video/video2.wmv的视频文件。
完成以上工作之后,便大公告成了...运行代码,点击HyperlinkButton控件(Content="影视"),便会播放视频了。(实现音频播放功能和上面步骤过程完全一样)。
最后附上一张图片:
以上内容参考了Jake Lin的视频。
(版权所有,转载请标明出处)