IMFMediaEngineExtension::BeginCreateObject 메서드(mfmediaengine.h)
바이트 스트림 또는 미디어 원본을 만드는 비동기 요청을 시작합니다.
구문
HRESULT BeginCreateObject(
[in] BSTR bstrURL,
[in] IMFByteStream *pByteStream,
[in] MF_OBJECT_TYPE type,
[out] IUnknown **ppIUnknownCancelCookie,
[in] IMFAsyncCallback *pCallback,
[in, optional] IUnknown *punkState
);
매개 변수
[in] bstrURL
미디어 리소스의 URL입니다.
[in] pByteStream
IMFByteStream 인터페이스에 대한 포인터입니다.
형식 매개 변수가 MF_OBJECT_BYTESTREAM 같으면 이 매개 변수는 NULL입니다.
형식이 MF_OBJECT_MEDIASOURCE 같은 경우 이 매개 변수는 바이트 스트림에 대한 포인터를 포함하거나 NULL입니다. 자세한 내용은 설명 부분을 참조하십시오.
[in] type
만들 개체의 형식을 지정하는 MF_OBJECT_TYPE 열거형의 멤버입니다.
값 | 의미 |
---|---|
|
바이트 스트림을 만듭니다. 바이트 스트림은 IMFByteStream 인터페이스를 지원해야 합니다. |
|
미디어 원본을 만듭니다. 미디어 원본은 IMFMediaSource 인터페이스를 지원해야 합니다. |
[out] ppIUnknownCancelCookie
IUnknown 인터페이스에 대한 포인터를 받습니다. 이 포인터는 IMFMediaEngineExtension::CancelObjectCreation 메서드에 포인터를 전달하여 비동기 작업을 취소하는 데 사용할 수 있습니다.
호출자는 인터페이스를 해제해야 합니다. 이 매개 변수는 NULL일 수 있습니다.
[in] pCallback
IMFAsyncCallback 인터페이스에 대한 포인터입니다. 이 인터페이스는 비동기 작업의 완료를 알리는 데 사용됩니다.
[in, optional] punkState
호출자가 구현한 개체의 IUnknown 인터페이스에 대한 포인터입니다. 이 개체를 사용하여 콜백에 대한 상태 정보를 저장할 수 있습니다. 콜백이 호출될 때 개체가 호출자에게 반환됩니다. 이 매개 변수는 NULL일 수 있습니다.
반환 값
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
이 메서드는 형식 매개 변수의 값에 따라 바이트 스트림 또는 미디어 원본을 만들도록 개체를 요청합니다.
- 형식이 MF_OBJECT_BYTESTREAM 경우 메서드는 bstrURL에 지정된 URL에 대한 바이트 스트림을 만듭니다. 이 경우 pByteStream 매개 변수는 NULL입니다.
- 형식이 MF_OBJECT_MEDIASOURCE 경우 메서드는 pByteStream 매개 변수에 지정된 바이트 스트림을 사용하여 미디어 원본을 만듭니다. 이 경우 pByteStream 은 NULL 일 수도 있습니다.
구현 정보
미디어 엔진 확장을 사용하여 사용자 지정 바이트 스트림 개체, 사용자 지정 미디어 원본 또는 둘 다를 지원할 수 있습니다. 바이트 스트림의 경우 형식 이 MF_OBJECT_BYTESTREAM 같은 경우 바이트 스트림 개체를 만듭니다. 미디어 원본의 경우 형식이 MF_OBJECT_MEDIASOURCE 같은 경우 원본을 만듭니다.URL을 로드하기 위해 미디어 엔진은 다음 단계를 수행합니다.
- URL에서 바이트 스트림을 만듭니다.
- 바이트 스트림이 성공적으로 만들어지면 바이트 스트림에서 미디어 원본을 만들어 보세요.
- 바이트 스트림을 만들 수 없는 경우 URL에서 직접 미디어 원본을 만듭니다.
각 단계에서 미디어 엔진은 확장 개체에서 IMFMediaEngineExtension::BeginCreateObject 를 호출합니다. BeginCreateObject 메서드가 실패하면 미디어 엔진이 소스 확인자를 시도합니다.
BeginCreateObject 메서드에서 다음 사례 중 하나를 처리하도록 선택할 수 있습니다.
- 형식 매개 변수가 MF_OBJECT_BYTESTREAM. URL에서 바이트 스트림을 만듭니다.
- 형식 매개 변수는 MF_OBJECT_MEDIASOURCEpByteStream은 바이트 스트림을 가리킵니다. 바이트 스트림을 사용하여 미디어 원본을 만듭니다.
- 형식 매개 변수는 MF_OBJECT_MEDIASOURCEpByteStream은 NULL입니다. URL에서 미디어 원본을 만듭니다.
처리하지 않는 모든 사례에 대한 오류 코드를 반환합니다.
예:
- 사용자 지정 미디어 형식을 지원하려면 미디어 원본을 구현합니다. 미디어 원본에 특별한 바이트 스트림 구현이 필요하지 않은 경우 형식 이 MF_OBJECT_MEDIASOURCEpByteStream 이 NULL이 아닌 경우 미디어 원본을 만듭니다. 이 경우 표준 Microsoft Media Foundation 바이트 스트림 구현이 사용됩니다.
- 사용자 지정 URL 체계를 지원하려면 형식 이 MF_OBJECT_BYTESTREAM 경우를 처리하고 URL을 읽을 수 있는 바이트 스트림 개체를 반환합니다.
BeginCreateObject 메서드가 성공하면 작업을 비동기적으로 수행해야 합니다. 작업이 완료되면 pCallback에 지정된 콜백 인터페이스에서 IMFAsyncCallback::Invoke 메서드를 호출합니다. 미디어 엔진은 IMFMediaEngineExtension::EndCreateObject를 호출하여 작업을 완료합니다.
요구 사항
지원되는 최소 클라이언트 | Windows 8 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | mfmediaengine.h |