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를 호출하여 특성 저장소를 만든 다음 다음 특성을 설정합니다.
- MF_CAPTURE_ENGINE_D3D_MANAGER
- MF_CAPTURE_ENGINE_DISABLE_DXVA
- MF_CAPTURE_ENGINE_DISABLE_HARDWARE_TRANSFORMS
- MF_CAPTURE_ENGINE_ENCODER_MFT_FIELDOFUSE_UNLOCK_Attribute
- MF_CAPTURE_ENGINE_EVENT_GENERATOR_GUID
- MF_CAPTURE_ENGINE_EVENT_STREAM_INDEX
- MF_CAPTURE_ENGINE_MEDIASOURCE_CONFIG
- MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_PROCESSED_SAMPLES
- MF_CAPTURE_ENGINE_RECORD_SINK_AUDIO_MAX_UNPROCESSED_SAMPLES
- MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_PROCESSED_SAMPLES
- MF_CAPTURE_ENGINE_RECORD_SINK_VIDEO_MAX_UNPROCESSED_SAMPLES
- MF_CAPTURE_ENGINE_USE_AUDIO_DEVICE_ONLY
- MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY
[in, optional] pAudioSource
오디오 캡처 디바이스를 지정하는 IUnknown 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.
pAttributes에서 MF_CAPTURE_ENGINE_USE_VIDEO_DEVICE_ONLY 특성을 TRUE로 설정하면 캡처 엔진은 오디오 디바이스를 사용하지 않으며 pAudioSource 매개 변수는 무시됩니다.
그렇지 않으면 pAudioSource 가 NULL인 경우 캡처 엔진은 pVideoSource로 지정된 비디오 카메라에 기본 제공되는 마이크를 선택합니다. 비디오 카메라에 마이크가 없는 경우 캡처 엔진은 시스템의 오디오 캡처 디바이스를 열거하고 첫 번째 디바이스를 선택합니다.
기본 오디오 디바이스를 재정의하려면 pAudioSource 를 디바이스에 대한 IMFMediaSource 또는 IMFActivate 포인터로 설정합니다. 자세한 내용은 Media Foundation의 오디오/비디오 캡처를 참조하세요.
[in, optional] pVideoSource
비디오 캡처 디바이스를 지정하는 IUnknown 포인터입니다. 이 매개 변수는 NULL일 수 있습니다.
pAttributes에서 MF_CAPTURE_ENGINE_USE_AUDIO_DEVICE_ONLY 특성을 TRUE로 설정하면 캡처 엔진은 비디오 디바이스를 사용하지 않으며 pVideoSource 매개 변수는 무시됩니다.
그렇지 않으면 pVideoSource 가 NULL인 경우 캡처 엔진은 시스템의 비디오 캡처 디바이스를 열거하고 첫 번째 디바이스를 선택합니다.
기본 비디오 디바이스를 재정의하려면 pVideoSource 를 디바이스에 대한 IMFMediaSource 또는 IMFActivate 포인터로 설정합니다. 자세한 내용은 비디오 캡처 디바이스 열거를 참조하세요.
이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
성공. |
|
Initialize 메서드가 이미 호출되었습니다. |
|
사용할 수 있는 캡처 디바이스가 없습니다. |
|
지원되지 않는 캡처 디바이스가 시스템에 있습니다. 이 오류는 시스템이 캡처 디바이스를 선택해야 함을 나타내는 pVideoSource 매개 변수에 대해 NULL을 지정하고 지원되는 캡처 디바이스가 이미 연결되어 있지 않은 경우에만 반환됩니다. 이 오류가 반환되는 경우 앱은 일반 오류 메시지 대신 지원되지 않는 특정 캡처 디바이스 메시지를 사용자에게 표시하는 것이 좋습니다. |
캡처 엔진을 사용하기 전에 이 메서드를 한 번 호출해야 합니다. 메서드를 두 번째로 호출하면 MF_E_INVALIDREQUEST 반환됩니다.
이 메서드는 비동기적이며, 메서드가 성공 코드를 반환하는 경우 호출자는 IMFCaptureEngineOnEventCallback::OnEvent 메서드를 통해 MF_CAPTURE_ENGINE_INITIALIZED 이벤트를 수신합니다. 메서드가 성공하면 작업이 비동기적으로 실패할 수 있습니다. 이 경우 오류 코드는 OnEvent 메서드를 통해 전달됩니다.
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | mfcaptureengine.h |