다음을 통해 공유


미디어 세션 정보

미디어 세션은 IMFMediaSession 인터페이스를 노출합니다 . 애플리케이션이 보호된 콘텐츠를 지원하는지 여부에 따라 미디어 세션을 만드는 방법에는 두 가지가 있습니다.

  • 애플리케이션이 보호된 콘텐츠를 지원하지 않는 경우 MFCreateMediaSession을 호출하여 미디어 세션을 만들 수 있습니다. 이 함수는 애플리케이션 프로세스 내에 미디어 세션을 만듭니다.
  • 보호된 콘텐츠를 지원하려면 MFCreatePMPMediaSession을 호출하여 미디어 세션을 만듭니다. 이 함수는 PMP(보호된 미디어 경로) 프로세스 내에 미디어 세션을 만듭니다. 애플리케이션은 프로세스 경계를 넘어 메서드 호출을 마샬링하는 프록시 개체에 대한 포인터를 받습니다. PMP 미디어 세션을 사용하여 명확한 콘텐츠와 보호된 콘텐츠를 재생할 수 있습니다.

미디어 세션을 사용하는 모든 애플리케이션은 다음과 같은 일반적인 단계를 수행합니다.

  1. 토폴로지를 만듭니다.
  2. IMFMediaSession::SetTopology를 호출하여 미디어 세션에서 토폴로지를 큐에 추가합니다.
  3. IMFMediaSession::Start, IMFMediaSession::P ause 또는 IMFMediaSession::Stop을 호출하여 데이터 흐름을 제어합니다.
  4. 애플리케이션이 종료되기 전에 IMFMediaSession::Close 를 호출하여 미디어 세션을 닫습니다.
  5. IMFMediaSource::Shutdown을 호출하여 애플리케이션이 만든 미디어 원본을 종료합니다.
  6. IMFMediaSession::Shutdown을 호출하여 미디어 세션을 종료합니다.

미디어 세션을 사용하는 경우 애플리케이션이 미디어 원본을 직접 시작, 일시 중지 또는 중지해서는 안 됩니다. 모든 상태 변경은 IMFMediaSession 메서드를 호출하여 시작해야 합니다. 미디어 원본의 상태 변경 내용은 미디어 세션에서 처리됩니다.

다른 많은 세부 정보는 애플리케이션의 특정 기능에 따라 달라집니다.

보호된 콘텐츠

보호된 콘텐츠를 재생하려면 MFCreatePMPMediaSession을 호출하여 PMP(보호된 미디어 경로) 내에 미디어 세션을 만들어야 합니다. 이 함수는 PMP 내에 미디어 세션의 instance 만들고 프로세스 경계를 넘어 인터페이스를 마샬링하는 프록시 개체에 대한 포인터를 반환합니다.

대부분의 경우 PMP 내에서 미디어 세션을 사용하는 것은 애플리케이션에 투명합니다. 그러나 애플리케이션은 사용자가 콘텐츠를 재생할 수 있는 특정 작업을 호출해야 할 수 있습니다. 예를 들어 사용자는 DRM 라이선스를 받아야 할 수 있습니다. Media Foundation은 IMFContentEnabler 인터페이스를 사용하여 이러한 작업에 대한 제네릭 메커니즘을 정의합니다.

자세한 내용은 아래 항목을 참조하세요.

프레젠테이션 시계

미디어 세션은 프레젠테이션 시계의 모든 측면을 관리합니다.

  • 프레젠테이션 클록 만들기

  • 시간 원본을 선택합니다.

  • 시계에 대한 미디어 싱크 알림

  • 필요에 따라 시계를 시작, 중지 및 일시 중지합니다.

  • 시계를 종료합니다.

프레젠테이션 시계에 대한 포인터를 얻으려면 미디어 세션에서 IMFMediaSession::GetClock 을 호출합니다. 미디어 세션이 meSessionTopologyStatus 이벤트를 MF_TOPOSTATUS_READY 플래그와 함께 보낼 때까지 프레젠테이션 클록은 유효한 시간을 반환하지 않습니다. 그때까지 GetClock 은 MF_E_CLOCK_NO_TIME_SOURCE 반환합니다.

미디어 세션을 사용하는 애플리케이션은 프레젠테이션 시계를 시작, 중지 또는 일시 중지하면 안 됩니다. 클록 속도를 변경합니다. 또는 클록을 종료합니다.

애플리케이션이 IMFMediaSession::Start를 호출하면 미디어 세션은 시작 시간에 Start 메서드에 지정된 시작 위치와 동일한 시작 시간으로 프레젠테이션 시계를 시작합니다. 미디어 세션에 대한 자세한 내용은 미디어 세션을 참조하세요.

미디어 세션