现在的位置: 首页 > 综合 > 正文

Windows Phone 7 实现视频播放

2013年07月19日 ⁄ 综合 ⁄ 共 2000字 ⁄ 字号 评论关闭

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的视频。

(版权所有,转载请标明出处)

抱歉!评论已关闭.