最近有一个需求是获取视频的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版权协议,转载请附上原文出处链接和本声明。