媒体基金会截图挂钩

Media Foundation screenshot hook

需要在正确的时间截取应用程序的屏幕截图(它可以被阻止、折叠甚至在不同的会话中)。该应用程序通过媒体基础播放视频流:

据我了解有必要截取MFCreateMediaSession,接收什么IMFMediaSession,只有这里进一步用这个对象做什么?可以从另一个线程访问它吗?

我看到您在 Media Foundation 的基础上编写了用于播放视频的应用程序 - 您需要将视频图像作为单独的解码帧。所以,你有两个机会:

  1. 从渲染器获取视频帧:常规 Media Foundation 渲染器具有 IMFVideoDisplayControl 接口 - 在 MSDN IMFVideoDisplayControl - it has command GetCurrentImage - retrieves a copy of the current image being displayed by the video renderer - on MSDN GetCurrentImage.
  2. 第二种方式 - 将样本采集器接收器附加到视频管道 - 媒体基础函数 MFCreateSampleGrabberSinkActivate 允许使用 IMFSampleGrabberSinkCallback interface - it allows get decoded video images in format of Bitmap images in System Memory. Using of sample grabber is more difficult, and I can recommend my project Capturing Video from Web-camera on Windows 7 and 8 by using Media Foundation 从样本采集器对象创建接收器以用于研究这种方式。

此致。