IAMStreamControl 接口 (strmif.h)

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

接口 IAMStreamControl 控制筛选器上的单个流。 某些筛选器上的固定会公开此接口。 例如, AVI 复用器筛选器 在其输入引脚上支持此接口, 音频捕获筛选器WDM 视频捕获筛选器 在其输出引脚上支持此接口。

此接口使应用程序能够在指定时间打开和关闭流。 例如,应用程序可能会关闭音频流,以便在视频预览期间将音频静音。 捕获应用程序可以使用此接口指定捕获的确切开始和停止时间,并控制捕获和预览流彼此独立。

若要使用此接口,请调用 IAMStreamControl::StartAt 方法以指定引脚何时开始传递数据,并调用 IAMStreamControl::StopAt 方法指定何时停止传递数据。 然后在 Filter Graph Manager 上调用 IMediaControl::Run 以运行筛选器图。 所有时间都与图形开始运行的时间相关。

使用此接口时,请注意以下限制:

  • 筛选器图中必须有一个引用时钟。
  • 具有硬件覆盖的捕获卡上的预览固定不支持此接口。
  • 如果要将音频和视频捕获到交错的 AVI 文件,则 AVI 复用器筛选器需要两个数据流。 如果停止一个流,筛选器无法交错数据。 有关详细信息,请参阅 IConfigInterleaving 接口
根据应用程序,你可能会发现 ICaptureGraphBuilder2::ControlStream 方法更方便,因为它支持图形级别的流控制,因此无需枚举单个筛选器和引脚。

筛选器开发人员CBaseStreamControl 基类实现此接口。

继承

IAMStreamControl 接口继承自 IUnknown 接口。 IAMStreamControl 还具有以下类型的成员:

方法

IAMStreamControl 接口具有这些方法。

 
IAMStreamControl::GetInfo

GetInfo 方法检索有关当前流控制设置的信息,包括启动和停止时间。
IAMStreamControl::StartAt

StartAt 方法通知引脚何时开始传送数据。
IAMStreamControl::StopAt

StopAt 方法通知引脚何时停止传送数据。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)

另请参阅

CBaseStreamControl 类

错误和成功代码