У меня есть приложение для форм Windows, написанное на C#, которое использует встроенный проигрыватель Windows Media (AxInterop.WMPLib.dll и WMPLib.dll) для воспроизведения некоторых видеофайлов. Теперь мне нужно добавить опцию для захвата изображения из видео при нажатии кнопки. Если я установил для параметра без окон значение true, я смогу захватить изображение видео, но когда я установил параметр без окон в true, я не вижу видеоизображения на некоторых компьютерах. Без окон варианта я только получаю черный экран с этим кодом:C# Windows Forms захватить изображение из встроенного проигрывателя Windows Media
System.Drawing.Image ret = null;
try{
Bitmap bitmap = new Bitmap(wmPlayer.Width-26, wmPlayer.Height-66);
{
Graphics g = Graphics.FromImage(bitmap);
{
Graphics gg = wmPlayer.CreateGraphics();
{
this.BringToFront();
g.CopyFromScreen(
wmPlayer.PointToScreen(
new System.Drawing.Point()).X+13,
wmPlayer.PointToScreen(
new System.Drawing.Point()).Y,
0, 0,
new System.Drawing.Size(
wmPlayer.Width-26,
wmPlayer.Height-66)
);
}
}
using (MemoryStream ms = new MemoryStream()){
bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
ret = System.Drawing.Image.FromStream(ms);
ret.Save(@"C:\\WMP_capture.png");
pictureBox1.Image=ret;
}
}
bitmap.Dispose();
}catch (Exception){ }
Как я могу захватить кадр (снимок) от воспроизведения видео во встроенном проигрывателе Windows Media без окон опции в C#?
Или есть ли какой-либо другой видеопроигрыватель для форм Windows C, которые можно легко реализовать и которые поддерживают функцию захвата.
Спасибо за ответы, к сожалению, не работает. То же, что и с моим кодом ... на самом деле основная часть кода такая же. Вы знаете, как использовать DirectShow с WMP для захвата изображения? –