c# - WPF C#媒体元素显示视频的第一张图像

标签 c# wpf button audio mediaelement

我有一个要使用WPF的MediaElement播放的.mov文件,我可以无忧地播放和暂停,因为我使用MediaState.Manual,但是我想在加载视频时显示视频的第一个图像或帧,源设置在后面的代码中,我尝试了MediaElement.ScrubbingEnabled = true后面的代码和xaml都没有显示。

这是我的代码(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();
    }

最佳答案

据我所知,您仅在单击Source时才加载视频(设置button1),但您希望在此之前显示第一帧。为此,您必须以其他方法加载视频,最好是在加载PageWindow时。然后,您可以执行以下操作:

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

关于c# - WPF C#媒体元素显示视频的第一张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17782876/

相关文章:

wpf - 如何使用自定义模板文件导出数据

javascript - 一个函数处理多个按钮

wpf - WPF按钮内的png图像

c# - Java 等效于 AttributeUsage C#

C# 检查基于文本的答案是否正确

c# - UWP Entity Framework Core SQLITE 在 Release模式下崩溃

c# - WindowsBase.dll 中发生“System.StackOverflowException”

wpf - 有没有办法显示WPF应用程序的初始屏幕?

Android:按钮飞行有效

c# - 映射父亲枚举时生成子对象(Fluent Nhibernate)