c# - 在 C# 应用程序中播放视频

标签 c# wpf html video awesomium

我的 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# 应用程序中会出现这种情况;

enter image description here

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

最佳答案

我曾经遇到过与 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"/>

关于c# - 在 C# 应用程序中播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36548524/

相关文章:

c# - const 字符串是否符合垃圾回收条件?

c# - 如何根据深度嵌套的数组属性拆分大型 JSON 文件?

c# - 任务不更新WPF中的UI

wpf - 是否可以像在 WPF 中扩展样式一样扩展 ControlTemplate?

php - Codeigniter 重复模板

javascript - 如何在不折叠的情况下将div绘制到特定位置已经存在的div或没有覆盖

html - 在 slim 中使用粗体或斜体等标签?

c# - 当进行非常大的插入时,不参数化 MySQL 查询而是使用方法 MySqlHelper.EscapeString(string) 是否安全?

javascript - async 和 defer 语法可以是 async ="async"吗?

c# - ReactiveCommand 传递命令参数