2013-07-22 56 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