2013-07-22 58 views
1

我有一個.mov文件,我想使用WPF的MediaElement播放,我可以播放和暫停,無需擔心,因爲我使用MediaState.Manual,但我想顯示第一個圖片或框架的視頻時,我加載它,源代碼設置在後面,我試着MediaElement.ScrubbingEnabled = true代碼後面和XAML,但它仍然不顯示。WPF C#媒體元素顯示視頻的第一個圖像

這裏是我的代碼(XAML側):

<DockPanel Height="386" HorizontalAlignment="Center" Name="dockPanel1" VerticalAlignment="Top" Width="731"> 
     <MediaElement Name="McMediaElement" LoadedBehavior="Manual" UnloadedBehavior="Manual" Stretch="Fill" MediaOpened="Element_MediaOpened" MediaEnded="Element_MediaEnded" OpacityMask="#FF040410" Height="386" IsVisibleChanged="SingAlong_IsVisibleChanged" ScrubbingEnabled="True"></MediaElement> 
    </DockPanel> 

後面的代碼(xaml.cs):

private void PlayAudio() 
    { 


     McMediaElement.LoadedBehavior = MediaState.Manual; 
     McMediaElement.Source = new Uri("../../SingAlong/GrassHopper and Ants/ants2.mov", UriKind.RelativeOrAbsolute); 
     McMediaElement.ScrubbingEnabled = true; 

     McMediaElement.Play(); 
    } 

    private void button1_Click_1(object sender, RoutedEventArgs e) // Play button 
    { 
     if (McMediaElement.Source != null) 
     { 
      McMediaElement.Play(); 
     } 
     else 
      PlayAudio(); 
    } 

    private void button2_Click(object sender, RoutedEventArgs e) // Pause button 
    { 
     McMediaElement.Pause(); 
    } 

回答

1

據我所知,您加載視頻(設置Source )只有當您點擊button1,但您希望在發生這種情況之前顯示第一幀。要完成此操作,您需要使用其他方法加載視頻,最好在加載PageWindow時加載。然後,您可以執行以下操作:

McMediaElement.ScrubbingEnabled = true; 
McMediaElement.Play(); 
McMediaElement.Pause(); 
+1

您也可以刪除Play()並將Position屬性設置爲0的時間跨度以實現同樣的效果。 – CLR