本文告訴大家如何在 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 進行除錯
本文所有代碼放在github 和 gitee 歡迎訪問
可以通過如下方式獲取本文的源代碼,先創建一個空檔案夾,接著使用命令列 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 檔案夾
博客園博客只做備份,博客發布就不再更新,如果想看最新博客,請到 https://blog.lindexi.com/

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可,歡迎轉載、使用、重新發布,但務必保留文章署名[林德熙](http://blog.csdn.net/lindexi_gd)(包含鏈接:http://blog.csdn.net/lindexi_gd ),不得用于商業目的,基于本文修改后的作品務必以相同的許可發布,如有任何疑問,請與我[聯系](mailto:[email protected]),
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/435310.html
標籤:WPF
