本文告訴大家如何在 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 文件夾