IAudioProcessingObject::IsInputFormatSupported 方法 (audioenginebaseapo.h)

此方法与 Windows Vista 音频引擎协商,以建立音频数据流的数据格式。

语法

HRESULT IsInputFormatSupported(
  [in, optional]  IAudioMediaType *pOppositeFormat,
  [in, optional]  IAudioMediaType *pRequestedInputFormat,
  [out, optional] IAudioMediaType **ppSupportedInputFormat
);

参数

[in, optional] pOppositeFormat

指向 IAudioMediaType 接口的指针。 此参数用于指示数据的输出格式。 pOppositeFormat 的值必须设置为 NULL ,以指示输出格式可以是任意类型。

[in, optional] pRequestedInputFormat

指向 IAudioMediaType 接口的指针。 此参数用于指示要验证的输入格式。

[out, optional] ppSupportedInputFormat

此参数指示最接近要验证的格式的支持格式。

返回值

如果调用成功完成,则 ppSupportedInputFormat 参数返回 pRequestedInputFormat 指针,IsInputFormatSupported 方法返回值 S_OK。 否则,此方法返回以下错误代码之一:

返回代码 说明
S_FALSE
不支持输入/输出格式对的格式。 ppSupportedInputFormat 返回建议的新格式。
APOERR_FORMAT_NOT_SUPPORTED
不支持要验证的格式。 ppSupportedInputFormat 的值不会更改。
E_POINTER
传递给 方法的指针无效。 ppSupportedInputFormat 的值不会更改。
其他 HRESULT 值
音频引擎跟踪这些附加错误条件。

注解

不同 ADO 在方法的 IsInputFormatSupported 实现上存在差异。 例如,对于某些实现,当输入格式为 integer 类型时,输出只能是 float 类型。

为了启动格式协商,音频服务首先将 LFX sAPO 的输出设置为基于 float32 的默认格式。 然后,音频服务调用 IAudioProcessingObject::IsInputFormatSupported LFX sAPO 的 方法,建议默认格式,并监视此方法的 HRESULT 响应。 如果 LFX sAPO 的输入可以支持建议的格式,它将返回S_OK,以及对受支持格式的引用。 如果 LFX sAPO 的输入不支持建议的格式,它将返回S_FALSE以及对与建议格式最匹配的格式的引用。 如果 LFX sAPO 不支持建议的格式并且没有密切匹配,则返回APOERR_FORMAT_NOT_SUPPORTED。 GFX sAPO 适用于 LFX sAPO 的输出格式。 因此,GFX sAPO 不参与格式协商过程。

要求

要求
最低受支持的客户端 适用于 Windows Vista 和更高版本的 Windows 操作系统。
目标平台 通用
标头 audioenginebaseapo.h
Library Audioenginebaseapo.idl
IRQL 所有级别