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 進行調試

本文所有代碼放在githubgitee 歡迎訪問

可以通過如下方式獲取本文的源代碼,先創建一個空文件夾,接着使用命令行 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 文件夾


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM