Informace o relaci médií
Media Session zveřejňuje IMFMediaSession rozhraní. Relaci médií můžete vytvořit dvěma způsoby v závislosti na tom, jestli vaše aplikace bude podporovat chráněný obsah:
- Pokud vaše aplikace nepodporuje chráněný obsah, můžete vytvořit relaci médií voláním MFCreateMediaSession. Tato funkce vytvoří relaci médií uvnitř procesu aplikace.
- Chcete-li podporovat chráněný obsah, vytvořte relaci médií voláním MFCreatePMPMediaSession. Tato funkce vytvoří relaci médií v rámci procesu Chráněná cesta médií (PMP). Aplikace obdrží ukazatel na objekt proxy, který přenáší volání metod přes hranice procesu. Všimněte si, že relaci média PMP lze použít k přehrávání jasného obsahu i chráněného obsahu.
Každá aplikace, která používá relaci médií, bude postupovat podle těchto obecných kroků:
- Vytvořte topologii.
- Zařaďte topologii do fronty v relaci médií voláním IMFMediaSession::SetTopology.
- Řízení toku dat voláním IMFMediaSession::Start, IMFMediaSession::Pausenebo IMFMediaSession::Stop.
- Před ukončením aplikace volejte IMFMediaSession::Close pro zavření relace médií.
- Vypněte všechny zdroje médií, které aplikace vytvořila, voláním MMFMediaSource::Shutdown.
- Ukončete relaci médií voláním IMFMediaSession::Shutdown.
Při použití relace médií by aplikace neměla přímo spustit, pozastavit nebo zastavit zdroj médií. Všechny změny stavu musí být inicializovány voláním MMFMediaSession metody. Změny stavu ve zdroji médií zpracovává mediální relace.
Mnoho dalších podrobností bude záviset na konkrétních funkcích vaší aplikace.
Chráněný obsah
Chcete-li přehrát chráněný obsah, je nutné vytvořit relaci médií uvnitř chráněné cesty média (PMP) voláním MFCreatePMPMediaSession. Tato funkce vytvoří instanci relace médií uvnitř PMP a vrátí ukazatel na objekt proxy, který přenáší rozhraní přes hranice procesu.
Ve většině případů je použití mediální relace uvnitř PMP pro aplikaci transparentní. Aplikace ale může potřebovat vyvolat určité akce, které uživateli umožní přehrávat obsah. Uživatel může například potřebovat získat licenci DRM. Media Foundation definuje obecný mechanismus pro tyto akce pomocí rozhraní MMFContentEnabler.
Další informace najdete v následujících tématech:
Hodiny prezentace
Mediální relace spravuje všechny aspekty prezentačních hodin:
Vytvoření časomíry prezentace
Výběr zdroje času
Upozorňování přijímačů médií na časový zdroj
Spouštění, pozastavení a zastavení hodin podle potřeby
Vypínání hodin.
Pokud chcete získat ukazatel na hodiny prezentace, zavolejte IMFMediaSession::GetClock na relaci médií. Hodiny prezentace nevrací platný čas, dokud neodešle relace médií událost MESessionTopologyStatus s příznakem MF_TOPOSTATUS_READY. Do té doby GetClock vrátí MF_E_CLOCK_NO_TIME_SOURCE.
Aplikace, která používá mediální relaci, by nikdy neměla spustit, zastavit nebo pozastavit hodiny zobrazení; změnit rychlost hodin; nebo vypnout hodiny.
Když aplikace volá IMFMediaSession::Start, relace médií spustí hodiny prezentace s počátečním časem, který odpovídá počáteční pozici zadané metodou Start. Další informace o relaci médií naleznete v Media Session.
Související témata