WPF 使用 VideoDrawing 播放视频
本文告诉大家如何在 WPF 使用 VideoDrawing 进行视频播放
用这个方法有什么优势?其实只是想作为某个控件的背景,某个控件的背景使用视频而已
控件的背景使用 DrawingBrush 传入,在 DrawingBrush 传入 VideoDrawing 即可。创建 VideoDrawing 需要一个 MediaPlayer 和给定视频的宽度和高度
如以下代码,实现拖入一个视频文件,就作为背景进行播放。在 XAML 的代码如下
<Grid Background="Transparent" AllowDrop="True" Drop="Grid_OnDrop">
</Grid>
给 Grid 加上 Background 只是为了让 Grid 能收到拖入文件的事件而已,在 Grid_OnDrop 方法里面,加上拖入文件播放的逻辑
private MediaPlayer? MediaPlayer { set; get; }
private void Grid_OnDrop(object sender, DragEventArgs e)
{
MediaPlayer?.Close();
var fileList = (string[]?) e.Data.GetData(DataFormats.FileDrop);
if (fileList is not null && fileList.Length > 0)
{
var mediaPlayer = MediaPlayer = new MediaPlayer();
mediaPlayer.Open(new Uri(fileList[0]));
var videoDrawing = new VideoDrawing()
{
Player = mediaPlayer,
Rect = new Rect(new Size(Width, Height))
};
var drawingBrush = new DrawingBrush(videoDrawing);
Background = drawingBrush;
mediaPlayer.Play();
}
}
以上就是所有的代码
有哪些视频能播放?系统解码器能解的大部分的视频
可以使用上面的代码用来测试在 WPF 应用播放视频的性能哦,记得切换到 Release 发布版本,且不要在 VisualStudio 进行调试
可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码
git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin b3ff420fdce51e05d2c097a20145380766512fdb
以上使用的是 gitee 的源,如果 gitee 不能访问,请替换为 github 的源
git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
获取代码之后,进入 ChairjuchiwhiRinehawwheago 文件夹
WPF 使用 VideoDrawing 播放视频的更多相关文章
- WPF播放视频
在现在的项目中需要使用到播放视频的功能,本来打算使用VLC来做的.后来发现WPF 4.0之后新增了MediaElement类,可以实现视频播放. <Grid> <Grid.RowDe ...
- 【WPF】使用控件MediaElement播放视频
需求是点击按钮后,弹出弹窗播放视频.按钮的点击事件如下. public void ShowVideo() { Window window = new Window(); window.Width = ...
- WPF成长之路------视频
今天偶然看到一篇博文,发现WPF原来还可以直接播放视频!于是在这里记录一下,以后方便使用: <MediaElement Source="C:\WINDOWS\system32\oobe ...
- AVAssetReader+AVAssetReaderTrackOutput播放视频
该文章引用自:http://www.jianshu.com/p/3d5ccbde0de1 IOS 微信聊天发送小视频的秘密(AVAssetReader+AVAssetReaderTrackOutput ...
- Android实现播放视频
转载:http://www.bdqn.cn/news/201311/12100.shtml 使用VideoView播放视频 VideoView,用于播放一段视频媒体,它继承了SurfaceView,位 ...
- Android使用TextureView播放视频
1.引言 如果你想显示一段在线视频或者任意的数据流比如视频或者OpenGL 场景,你可以用android中的TextureView做到. 1).TextureView的兄弟SurfaceView 应用 ...
- Cocos2dx3.11.1Android播放视频,后台 黑屏,无法记忆播放bug修改
/* * Copyright (C) 2006 The Android Open Source Project * Copyright (c) 2014 Chukong Technologies In ...
- 不完全解决Android微信HTML5 播放视频的问题(不显示控制条,可交互)
首先你需要知道以下内容: http://ad.weixin.qq.com/learn/2-3-3--%E9%80%9A%E7%94%A8%E5%BA%93 这是微信为广告商开放的API,我一直认为只有 ...
- Bootstrap 3 模态框播放视频
Bootstrap 3 模态框播放视频 I'm trying to use the Modal feature from Bootstrap 3 to show my Youtube video. I ...
- android SurfaceView中播放视频 按视频的原始比例播放
OnPreparedListener mediaPlayerOnPreparedListener = new OnPreparedListener() { @Override public void ...
随机推荐
- 记录--什么时候会阻塞HTML文档渲染过程?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 HTML页面加载过程会发生什么?因为浏览器网络拉取资源是多线程的,但是dom树的操作都是在一个线程中的,所以网页资源的解析.js加载.do ...
- 利用kali自带的msfvenom工具生成远程控制软件
一.首先还是得打开postgresql service postgresql start 然后让我们看看它有哪些功能 部分参数 -p 选择一个载荷,或者说一个模块吧. -i 载荷列表 -f 生成的文件 ...
- 英语文档阅读学习系列之Zynq-7000 EPP Software Developers Guide
阅读ug821-zynq-7000-swdev记录 1.略看目录Table 依旧采用总说加解释的模式,这种方式易于查找,是可靠的框架.目录词条依次为: Introduction Software Ap ...
- Luogu P3294 背单词
观前须知 本题解全部内容遵循CC BY-NC-SA 4.0 Deed原则 更好的观看体验 点这里 笔者的博客主页 正文 Luogu P3294 [SCOI2016]背单词 笔者在刷题的时候看到了这道好 ...
- 在typescript中,Omit是什么意思
在TypeScript中,Omit<Type, Keys> 是一个工具类型(utility type),它用于创建一个新的类型,这个新类型是从现有类型(Type)中排除了某些指定的属性(K ...
- 使用 GitLab CI/CD 和阿里云 CLI 自动部署前端项目
一.什么是 CI/CD? CI(持续交付)是功能迭代后自动构建.打包.校验代码格式.跑单测.单测覆盖率,常见的就是 Webpack.Rollup.ESLint等. CD(持续部署)是经过 CI 后,代 ...
- 使用OHOS SDK构建box2d
参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码,当前最新的提交记录ID为411acc32eb6d4f2e96fc70ddbdf01fe5f9b16230. 执行如下命令 ...
- OpenHarmony自定义组件介绍
一.创建自定义组件 在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件.在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑 ...
- 深入解析 C 语言中的 for 循环、break 和 continue
C语言中的 for 循环 当您确切地知道要循环执行代码块的次数时,可以使用 for 循环而不是 while 循环 for (语句 1; 语句 2; 语句 3) { // 要执行的代码块 } 语句 ...
- C# DevExpress下GridControl控件的增删查改
DevExpress的GridControl控件可以从任何数据源绑定数据并进行增删查改等操作,和VS自带的dataGridView控件对比,GridControl控件可以实现更多自定义的功能,界面UI ...