【问题标题】:Media Foundation screenshot hook媒体基金会截图挂钩
【发布时间】:2018-01-13 22:16:33
【问题描述】:

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

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

【问题讨论】:

  • 您不太可能从折叠的应用程序中截取屏幕截图。此外,您的挂钩策略似乎也不可行。

标签: windows winapi hook media ms-media-foundation


【解决方案1】:

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

  1. 从渲染器获取视频帧:常规 Media Foundation 渲染器具有 IMFVideoDisplayControl 接口 - 在 MSDN 上 IMFVideoDisplayControl - 它有命令 GetCurrentImage - 检索视频渲染器正在显示的当前图像的副本 - 在 MSDN @ 987654322@.
  2. 第二种方法 - 将样本采集器接收器附加到视频管道 - 媒体基础函数 MFCreateSampleGrabberSinkActivate 允许使用 IMFSampleGrabberSinkCallback 接口从样本采集器对象创建接收器 - 它允许在系统内存中以位图图像格式获取解码的视频图像。样品采集器的使用比较困难,我可以推荐我的项目Capturing Video from Web-camera on Windows 7 and 8 by using Media Foundation 来研究这种方式。

问候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多