WPF 使用 VideoDrawing 播放視訊
阿新 • • 發佈:2022-03-01
本文告訴大家如何在 WPF 使用 VideoDrawing 進行視訊播放
本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名[林德熙](http://blog.csdn.net/lindexi_gd)(包含連結:http://blog.csdn.net/lindexi_gd ),不得用於商業目的,基於本文修改後的作品務必以相同的許可釋出。如有任何疑問,請與我[聯絡](mailto:[email protected])。
本文告訴大家如何在 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 資料夾
部落格園部落格只做備份,部落格釋出就不再更新,如果想看最新部落格,請到 https://blog.lindexi.com/
本作品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名[林德熙](http://blog.csdn.net/lindexi_gd)(包含連結:http://blog.csdn.net/lindexi_gd ),不得用於商業目的,基於本文修改後的作品務必以相同的許可釋出。如有任何疑問,請與我[聯絡](mailto:[email protected])。