IVideoFrameStep::Step 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 Step 使筛选器图向前单步执行指定的帧数。

语法

HRESULT Step(
  DWORD    dwFrames,
  IUnknown *pStepObject
);

参数

dwFrames

指定要跳过的帧数。 如果 dwFrames 为 1,则图形向前推进一个帧。 如果 dwFrames 是一个大于 1 的数字 n ,则图将跳过 n - 1 个帧并显示 第 n个帧。

pStepObject

指向筛选器上将控制单步执行操作的接口的指针,或 为 NULL。 指定 NULL 以使用图形中的呈现器筛选器执行帧单步执行。 如果为非 NULL,则对象必须实现 IKsPropertySet 接口并支持 AM_KSPROPSETID_FrameStep 属性。 (有关详细信息,请参阅 帧单步执行属性 Set.) 如果图形包含实现帧步进的自定义筛选器, pStepObject 可以指定指向该筛选器的指针。

返回值

返回 HRESULT。 可能的值包括以下值。

返回代码 说明
S_OK
成功。
VFW_E_FRAME_STEP_UNSUPPORTED
不支持帧单步执行。
E_INVALIDARG
pStepObject 参数无效。

注解

步骤操作完成后,此方法会向筛选器图管理器发送 EC_STEP_COMPLETE 事件通知,该管理器会将通知传递给应用程序的事件循环,并将筛选器图设置为暂停状态。

帧实时步进,这意味着如果电影以每秒 30 帧的速度播放,则调用将 dwFrame 设置为 60 的 IVideoFrameStep::Step 需要 2 秒才能执行。 此接口中的所有方法是异步的,因此控制权会立即返回给应用程序。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IVideoFrameStep 接口