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 的值。 否則,此方法會傳回下列其中一個錯誤碼:

傳回碼 Description
S_FALSE
不支援輸入/輸出格式組的格式。 ppSupportedInputFormat 會傳回建議的新格式。
APOERR_FORMAT_NOT_SUPPORTED
不支援要驗證的格式。 ppSupportedInputFormat 的值不會變更。
E_POINTER
傳遞至 方法的指標無效。 ppSupportedInputFormat 的值不會變更。
其他 HRESULT 值
音訊引擎會追蹤這些額外的錯誤狀況。

備註

不同 API 實作 IsInputFormatSupported 方法的差異。 例如,使用特定實作時,只有在輸入格式為整數類型時,輸出才能是 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 作業系統。
目標平台 Universal
標頭 audioenginebaseapo.h
程式庫 Audioenginebaseapo.idl
IRQL 所有層級