ICaptureGraphBuilder::SetOutputFileName 方法 (strmif.h)

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

注意ICaptureGraphBuilder 接口已弃用。 请改用 ICaptureGraphBuilder2
 
创建筛选器图的呈现部分,该部分将使用指定的文件名将位保存到磁盘。

语法

HRESULT SetOutputFileName(
  [in]  const GUID      *pType,
  [in]  LPCOLESTR       lpstrFile,
  [out] IBaseFilter     **ppf,
  [out] IFileSinkFilter **ppSink
);

参数

[in] pType

指向表示媒体子类型的 GUID 的指针。 必须是 &MEDIASUBTYPE_Avi

[in] lpstrFile

指向包含输出文件名的宽字符字符串的指针。

[out] ppf

指向表示多路复用器筛选器的 IBaseFilter 接口的指针的地址。 此方法递增 IBaseFilter 接口上的引用计数,因此在使用筛选器完成后,必须使用此参数上的 Release 方法递减引用计数。

[out] ppSink

指向表示文件编写器的 IFileSinkFilter 接口的指针的地址。 此方法递增 IFileSinkFilter 接口上的引用计数,因此在使用筛选器完成后,必须使用 Release 递减引用计数。

返回值

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

返回代码 说明
E_FAIL
失败。
E_INVALIDARG
无效的参数。 Audio-Video 交错 (AVI) 是唯一支持的输出格式。
E_OUTOFMEMORY
内存不足。
E_POINTER
NULL 指针参数。
E_UNEXPECTED
出现了意外错误。
NOERROR
成功。
S_OK
已成功创建 AVI 多路复用器筛选器的实例。

注解

此方法将多路复用器和文件编写器插入筛选器图,并调用 IFileSinkFilter::SetFileName 来设置输出文件名。

在调用 RenderStream 时,可以使用此方法返回的 ppf 参数作为 pfRenderer 参数。

可以在调用 SetFileName 时使用此方法中的 pSink 参数来更改由 设置的ICaptureGraphBuilder::SetOutputFileName文件名。

要求

要求
最低受支持的客户端 Reference:_Dshowh
目标平台 Windows
标头 strmif.h
DLL Quartz.dll

另请参阅

错误和成功代码

ICaptureGraphBuilder 接口