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。 否则,此方法返回以下错误代码之一:
返回代码 | 说明 |
---|---|
|
不支持输入/输出格式对的格式。 ppSupportedInputFormat 返回建议的新格式。 |
|
不支持要验证的格式。 ppSupportedInputFormat 的值不会更改。 |
|
传递给 方法的指针无效。 ppSupportedInputFormat 的值不会更改。 |
|
音频引擎跟踪这些附加错误条件。 |
注解
不同 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 | 所有级别 |