Поделиться через


Метод 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
Эти дополнительные условия ошибок отслеживаются обработчиком звука.

Комментарии

Существуют различия в реализации IsInputFormatSupported метода различными API. Например, при определенных реализациях выходные данные могут иметь тип float, только если входной формат имеет целое число.

Чтобы инициировать согласование формата, аудиослужба сначала задает для выходных данных SAPO LFX формат по умолчанию на основе float32. Затем аудиослужба IAudioProcessingObject::IsInputFormatSupported вызывает метод SAPO LFX, предлагает формат по умолчанию и отслеживает ответ HRESULT этого метода. Если входные данные SAPO LFX могут поддерживать предлагаемый формат, он возвращает S_OK вместе со ссылкой на поддерживаемый формат. Если входные данные LFX sAPO не поддерживают предлагаемый формат, он возвращает S_FALSE вместе со ссылкой на формат, который ближе всего соответствует предложенному. Если SAPO LFX не поддерживает предлагаемый формат и не имеет близкого совпадения, она возвращает APOERR_FORMAT_NOT_SUPPORTED. SAPO GFX работает с форматом выходных данных SAPO LFX. Таким образом, SAPO GFX не участвует в процессе переговоров по формату.

Требования

Требование Значение
Минимальная версия клиента Доступно в операционных системах Windows Vista и более поздних версий.
Целевая платформа Универсальное
Верхняя часть audioenginebaseapo.h
Библиотека Audioenginebaseapo.idl
IRQL Все уровни