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 |
---|---|
|
不支援輸入/輸出格式組的格式。 ppSupportedInputFormat 會傳回建議的新格式。 |
|
不支援要驗證的格式。 ppSupportedInputFormat 的值不會變更。 |
|
傳遞至 方法的指標無效。 ppSupportedInputFormat 的值不會變更。 |
|
音訊引擎會追蹤這些額外的錯誤狀況。 |
備註
不同 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 | 所有層級 |