【问题标题】:Playing Video in C# Applications在 C# 应用程序中播放视频
【发布时间】:2016-04-11 12:19:41
【问题描述】:

我的 C# (WPF) 应用程序中有许多 Buttons,我想播放视频。到目前为止,我已经尝试了很多方法。

内置的MediaElement 成功播放了视频,但是在视频播放之前有很大的延迟(previous question)。我从来没有找到解决方案,因此我继续前进。

我尝试了另一种解决方案,即使用 WebBrowser 并在其中嵌入一些 HTML 来播放视频。这不起作用,因为WebBrowser 使用的是不支持 HTML5 视频的旧版 IE。因此,我继续尝试 Awesomium。

这是迄今为止我的 Awesomium 代码;

<Grid>
    <osm:WebControl x:Name="webControl" Margin="10"/>
</Grid>

在我的代码后面;

private void OnPageLoad(object sender, RoutedEventArgs e)
{
    try
    {
        var videoURI = new Uri(Properties.Settings.Default.FirstVideoPath);
        webControl.LoadHTML(@"<video width = ""100%"" height = ""100%"" controls >
                                <source src = ""C:\Desktop\example.mp4"" type = ""video/mp4"">
                                </video>");
    }
    catch(Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

HTML 在 Chrome 中打开时可以正常工作,但在我的 C# 应用程序中会出现这种情况;

基本上我的问题是这个。有没有人成功地在他们的应用程序中播放视频而不使用内置的MediaElement?我可以用什么来实现我想要的?

【问题讨论】:

    标签: c# wpf html video awesomium


    【解决方案1】:

    我曾经在MediaElement 上遇到过同样的性能问题。为了解决这个问题,我们从使用MediaElement 更改为MediaUriElementMediaUriElementWPFMediaKit 的一部分。请注意,您可能还需要下载并安装Windows Media Codec

    应下载 WPFMediaKit,然后从 .zip 中检索 WPFMediaKit.dll 文件并从您的项目中引用它。然后在 XAML 中你应该添加这个引用:

    xmlns:mk="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit"
    

    然后像这样使用MediaUriElement

    <mk:MediaUriElement Source="Your video path"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 2012-04-05
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多