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


Метод IMFCaptureEngine::Initialize (mfcaptureengine.h)

Инициализирует подсистему захвата.

Синтаксис

HRESULT Initialize(
  [in]           IMFCaptureEngineOnEventCallback *pEventCallback,
  [in, optional] IMFAttributes                   *pAttributes,
  [in, optional] IUnknown                        *pAudioSource,
  [in, optional] IUnknown                        *pVideoSource
);

Параметры

[in] pEventCallback

Указатель на интерфейс IMFCaptureEngineOnEventCallback . Вызывающий объект должен реализовать этот интерфейс. Подсистема отслеживания использует этот интерфейс для отправки асинхронных событий вызывающей объекту.

[in, optional] pAttributes

Указатель на интерфейс IMFAttributes . Этот параметр может принимать значение NULL.

Этот параметр можно использовать для настройки подсистемы записи. Вызовите MFCreateAttributes , чтобы создать хранилище атрибутов, а затем задайте любой из следующих атрибутов.

[in, optional] pAudioSource

Указатель IUnknown , указывающий устройство аудиозахвата. Этот параметр может принимать значение NULL.

Если для атрибута MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY задано значение TRUE в pAttributes, подсистема захвата не использует звуковое устройство, а параметр pAudioSource игнорируется.

В противном случае, если pAudioSource имеет значение NULL, подсистема захвата выбирает микрофон, встроенный в видеокамеру, указанную в параметре pVideoSource. Если у видеокамеры нет микрофона, подсистема захвата перечисляет устройства записи звука в системе и выбирает первое.

Чтобы переопределить звуковое устройство по умолчанию, задайте для pAudioSource указатель IMFMediaSource или IMFActivate для устройства. Дополнительные сведения см. в статье Запись звука и видео в Media Foundation.

[in, optional] pVideoSource

Указатель IUnknown , указывающий устройство захвата видео. Этот параметр может принимать значение NULL.

Если для атрибута MF_CAPTURE_ENGINE_USE_AUDIO_DEVICE_ONLY задано значение TRUE в pAttributes, обработчик захвата не использует видеоустройство, а параметр pVideoSource игнорируется.

В противном случае, если pVideoSource имеет значение NULL, подсистема захвата перечисляет устройства записи видео в системе и выбирает первое.

Чтобы переопределить видеоустройство по умолчанию, задайте для pVideoSource указатель IMFMediaSource или IMFActivate для устройства. Дополнительные сведения см. в разделе Перечисление устройств захвата видео.

Возвращаемое значение

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
MF_E_INVALIDREQUEST
Метод Initialize уже был вызван.
MF_E_NO_CAPTURE_DEVICES_AVAILABLE
Устройства записи недоступны.
MF_E_UNSUPPORTED_CAPTURE_DEVICE_PRESENT
В системе присутствует неподдерживаемое устройство захвата. Эта ошибка будет возвращена только в том случае, если для параметра pVideoSource задано значение NULL, что указывает на то, что система должна выбрать устройство захвата и если поддерживаемого устройства захвата еще не подключено. Рекомендуется, чтобы приложения отображали пользователям определенное неподдерживаемое сообщение устройства захвата, если возвращается эта ошибка, а не общее сообщение об ошибке.

Комментарии

Этот метод необходимо вызвать один раз перед использованием подсистемы записи. Второй вызов метода возвращает MF_E_INVALIDREQUEST.

Этот метод является асинхронным. Если метод возвращает код успешного выполнения, вызывающий объект получит событие MF_CAPTURE_ENGINE_INITIALIZED через метод IMFCaptureEngineOnEventCallback::OnEvent . Операция может завершиться асинхронным сбоем после успешного выполнения метода. Если это так, код ошибки передается с помощью метода OnEvent .

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header mfcaptureengine.h

См. также раздел

IMFCaptureEngine