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的視頻。
(著作權,轉載請標明出處)