如何实现在WPF中播放流视频

最近有一个需求是获取视频的url后,使用url在WPF中播放视频,试了好多方法都很复杂或者很难实现。

经过百般查找,终于找到了一个好方法。就是使用cefsharp将chrome浏览器内嵌到WPF中,然后使用loadhtml函数加载HTML字符串,在HTML字符串中设置video标签即可!

步骤

1.安装nuget包,搜索CefSharp.Wpf点击安装(其余三个包会自动安装)

在这里插入图片描述

注意:一定要选择79.1.360版本,因为cefsharp本身不支持H.264视频播放,所以后边我们需要对一个动态库做替换。

2.安装后检查引用,可能需要手动添加以下引用。

在这里插入图片描述
在这里插入图片描述
引用的动态库在项目目录下的packages目录下,红圈内的两个文件夹中。
在这里插入图片描述

3.添加完引用后将该cef.redist.x86.79.1.36文件夹下的动态库做替换。

动态库在这里

链接:https://pan.baidu.com/s/1ExuA6Cmg9b383kzmj2p_xw
提取码:triv
在这里插入图片描述

4.最后一步写代码

代码

前端:

<Page x:Class="chrome.ChromePage"
	  <!--这里需要添加上-->
      xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"

    <Grid>
        <cefSharp:ChromiumWebBrowser Name="Browser"/> <!--添加控件-->
    </Grid>
</Page>

后端:

private void SetVideoUrl(string videoUrl){
    string htmlText = "<!DOCTYPE HTML>\n" +
                    "<html>\n" +
                    "<body>\n" +
                    "<div width=\"100%\" height=\"100%\">\n" +
                    "<video preload=\"auto\" src = \"" + videoUrl + "\"" + " controls = \"controls\" width=\"100%\" height=\"100%\">\n" +
                    "</video>\n" +
                    "</div>\n" +
                    "</body>\n" +
                    "</html>";
    Browser.LoadHtml(htmlText);
}

大功告成!


版权声明:本文为vastz原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。