You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET中如何使用MediaPlayer对象在指定PictureBox控件中播放视频?

在.NET中将视频通过MediaPlayer播放到PictureBox的实现方案

答案是可以,具体实现方式取决于你使用的.NET UI框架(WinForms/WPF):

WinForms 场景

WinForms没有原生MediaPlayer类,通常有两种可行方案:

1. 嵌入AxWindowsMediaPlayer到PictureBox

通过COM引用添加Windows Media Player控件,将其嵌入到PictureBox中:

// 先添加COM引用"Windows Media Player",生成AxWindowsMediaPlayer
var wmp = new AxWindowsMediaPlayer();
wmp.Dock = DockStyle.Fill;
pictureBox1.Controls.Add(wmp);
wmp.URL = @"C:\example.mp4";
wmp.Ctlcontrols.Play();

这种方式简单直接,本质是把WMP控件作为PictureBox的子控件来渲染视频。

2. 用WPF MediaPlayer捕获帧并更新PictureBox

如果想使用WPF的MediaPlayer类,可以定时捕获视频帧,转换为Bitmap后赋值给PictureBox的Image属性:

using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Drawing.Imaging;

var mediaPlayer = new MediaPlayer();
mediaPlayer.Open(new Uri(@"C:\example.mp4"));
mediaPlayer.Play();

var frameTimer = new Timer { Interval = 33 }; // 对应约30帧/秒
frameTimer.Tick += (sender, e) =>
{
    if (mediaPlayer.Source == null || !mediaPlayer.NaturalDuration.HasTimeSpan) return;

    // 渲染当前帧到RenderTargetBitmap
    var rtb = new RenderTargetBitmap(
        pictureBox1.Width, pictureBox1.Height,
        96, 96, PixelFormats.Pbgra32);
    var dv = new DrawingVisual();
    using (var dc = dv.RenderOpen())
    {
        dc.DrawImage(mediaPlayer, new Rect(0, 0, pictureBox1.Width, pictureBox1.Height));
    }
    rtb.Render(dv);

    // 转换为Bitmap并更新PictureBox
    using (var ms = new MemoryStream())
    {
        var encoder = new BmpBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create(rtb));
        encoder.Save(ms);
        pictureBox1.Image = new Bitmap(ms);
    }
};
frameTimer.Start();

注意:需要引用WPF的PresentationCore和WindowsBase程序集,这种方式会有一定的性能开销,适合对播放要求不高的场景。

WPF 场景

WPF中没有PictureBox控件,对应的是Image控件。如果要使用MediaPlayer,同样可以通过帧捕获的方式将内容渲染到Image,但更推荐直接使用MediaElement控件——它是WPF原生的视频播放控件,使用更高效且无需手动处理帧捕获。


内容的提问来源于stack exchange,提问作者DumbestGuyOnSaturn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 20:34:51