Share via


미디어 세션에서 미디어 원본 사용

미디어 세션을 사용하여 재생을 제어하는 경우 미디어 원본에서 호출해야 하는 메서드 집합이 제한됩니다. 이 섹션에서는 미디어 세션과 함께 미디어 원본을 사용하는 방법을 설명합니다.

애플리케이션이 수행하는 기본 단계는 다음과 같습니다.

  1. 미디어 원본을 만듭니다. 미디어 원본을 만들려면 원본 확인자를 사용합니다. 자세한 내용은 원본 확인자를 참조하세요. 원본 확인자는 원본의 IMFMediaSource 인터페이스에 대한 포인터를 반환합니다. (사용자 지정 미디어 원본을 작성한 경우 사용자 지정 만들기 메서드를 대신 제공할 수 있습니다.)

  2. 프레젠테이션을 구성합니다. 원본의 프레젠테이션을 구성하려면 IMFMediaSource::CreatePresentationDescriptor를 호출합니다. 이 복사본을 수정할 수 있지만 재생이 시작될 때까지 변경 내용이 활성화되지 않습니다. 재생 중에 프레젠테이션 설명자를 수정하지 마세요. 자세한 내용은 프레젠테이션 설명자를 참조하세요.

  3. 미디어 원본이 포함된 토폴로지를 만듭니다. 자세한 내용은 토폴로지 를 참조하세요.

  4. 미디어 세션을 사용하여 재생을 제어합니다. 미디어 세션은 미디어 소스에서 메서드를 호출합니다. 애플리케이션은 현재 미디어 원본에서 메서드를 호출해서는 안 됩니다.

  5. 미디어 소스를 릴리스하기 전에 IMFMediaSource::Shutdown 을 호출하여 원본을 종료합니다.

    참고

    시퀀서 원본을 사용하는 경우 시퀀서 소스는 세그먼트 원본 종료를 처리합니다. 자세한 내용은 Sequencer 원본을 참조하세요.

     

미디어 세션을 사용하는 경우 미디어 원본에서 호출해야 하는 유일한 방법은 CreatePresentationDescriptor, GetCharacteristicsShutdown입니다. 특히 다음 사항에 주의하십시오.

  • 시작, 일시 중지 또는 중지를 호출하지 마세요. 이러한 메서드는 미디어 세션에서만 호출해야 합니다.

  • IMFMediaStream 메서드를 호출하지 마세요.

  • 미디어 원본 또는 스트림에서 직접 이벤트를 검색하지 마세요. 파이프라인이 올바르게 작동하려면 미디어 세션이 이러한 이벤트를 수신해야 합니다. 미디어 세션은 애플리케이션에 필요한 모든 이벤트를 전달합니다.

미디어 세션