Udostępnij za pośrednictwem


Sesja multimediów PMP

Aplikacja może utworzyć sesji multimediów w osobnym procesie nazywanym procesem chronionej ścieżki multimediów (PMP). Głównym celem procesu PMP jest umożliwienie odtwarzania chronionej zawartości przy użyciu funkcji zarządzania prawami cyfrowymi (DRM). Domyślnie proces PMP jest tworzony wewnątrz chronionego środowiska (PE). Tylko zaufane, podpisane składniki można załadować wewnątrz pe. Dodatkową zaletą procesu PMP jest odizolowanie procesu aplikacji od potoku multimediów. Aby uzyskać więcej informacji na temat procesu PMP, zobacz Ścieżka chronionego nośnika.

Aby utworzyć sesję multimediów wewnątrz procesu PMP, wywołaj funkcję MFCreatePMPMediaSession. Opcjonalnie możesz przekazać flagę MFPMPSESSION_UNPROTECTED_PROCESS. Jeśli ta flaga jest ustawiona, proces PMP jest tworzony wewnątrz niechronionego procesu, a nie w procesie PE. Nie można używać niechronionego procesu do odtwarzania DRM, ale zapewnia korzyści z izolacji procesów.

Funkcja MFCreatePMPMediaSession zwraca wskaźnik do obiektu proxy sesji multimediów. Aplikacja komunikuje się z sesją multimediów za pośrednictwem serwera proxy.

ilustrację sesji multimediów wewnątrz procesu pmp

Domyślnie, gdy aplikacja tworzy topologię, źródło multimediów jest tworzone wewnątrz procesu aplikacji. Serwer proxy do źródła multimediów jest tworzony wewnątrz procesu PMP. Źródło multimediów może tworzyć obiekty wewnątrz procesu PMP przy użyciu interfejsu IMFPMPHost. Na przykład w celu obsługi drM źródło multimediów tworzy obiekt o nazwie wejściowy urząd zaufania (ITA). ItA musi zostać utworzona wewnątrz procesu PMP. (Aby uzyskać więcej informacji na temat itas, zobacz Protected Media Path.) Aby użyć interfejsuIMFPMPHost, wykonaj następujące czynności:

  1. Źródło multimediów musi zaimplementować interfejs IMFPMPClient.
  2. Podczas rozwiązywania topologii serwer proxy sesji multimediów wywołuje metodę IMFPMPClient::SetPMPHost w źródle multimediów.
  3. Źródło multimediów wywołuje IMFPMPHost::CreateObjectByCLSID, aby utworzyć obiekt wewnątrz procesu PMP. Obiekt musi mieć zarejestrowany identyfikator CLSID. Ponadto, aby załadować wewnątrz pe, obiekt musi być zaufany i podpisany cyfrowo. Aby uzyskać informacje na temat składników chronionych multimediów podpisywania kodu, zobacz oficjalny dokument Podpisywanie kodu dla składników chronionych multimediów w systemie Windows Vista

Poniższa ilustracja przedstawia źródło multimediów utworzone w procesie aplikacji.

ilustrację źródła multimediów w procesie aplikacji.

Inną alternatywą jest utworzenie źródła multimediów wewnątrz sesji PMP.

  1. Ustaw atrybut MF_SESSION_REMOTE_SOURCE_MODE podczas tworzenia sesji multimediów. Atrybuty konfiguracji są określone w parametrze pConfiguration funkcji MFCreatePMPMediaSession.

  2. Wywołaj MFGetService w sesji multimediów, aby uzyskać wskaźnik do interfejsu IMFPMPHost. Identyfikator usługi jest MF_PMP_SERVICE.

  3. Wywołaj IMFPMPHost::CreateObjectByCLSID z identyfikatorem klasy CLSID_MFSourceResolver, aby utworzyć rozpoznawanie źródła wewnątrz procesu PMP. Metoda zwraca wskaźnik do serwera proxy dla narzędzia rozpoznawania źródła.

  4. Wywołaj IMFSourceResolver::BeginCreateObjectFromURL lub IMFSourceResolver::BeginCreateObjectFromByteStream, aby utworzyć źródło multimediów.

    Nuta

    W takim przypadku należy użyć asynchronicznych wersji tych metod, ponieważ wersje synchroniczne nie są remotable.

     

Poniższa ilustracja przedstawia źródło multimediów utworzone w procesie PMP.

ilustrację źródła multimediów w procesie pmp.

Jak odtwarzać chronione pliki multimedialne

sesji multimediów

ścieżki chronionych multimediów