Om mediesessionen
Mediasessionen exponerar IMFMediaSession-gränssnittet. Det finns två sätt att skapa mediesessionen, beroende på om programmet stöder skyddat innehåll:
- Om programmet inte stöder skyddat innehåll kan du skapa mediesessionen genom att anropa MFCreateMediaSession. Den här funktionen skapar mediasessionen i programprocessen.
- Om du vill ha stöd för skyddat innehåll skapar du mediesessionen genom att anropa MFCreatePMPMediaSession. Den här funktionen skapar mediasessionen i PMP-processen (Protected Media Path). Programmet tar emot en pekare till ett proxyobjekt som samordnar metodanrop över processgränsen. Observera att PMP Media Session kan användas för att spela upp tydligt innehåll och skyddat innehåll.
Alla program som använder mediasessionen följer dessa allmänna steg:
- Skapa en topologi.
- Köa topologin på mediesessionen genom att anropa IMFMediaSession::SetTopology.
- Kontrollera dataflödet genom att anropa IMFMediaSession::Start, IMFMediaSession::P auseeller IMFMediaSession::Stop.
- Innan programmet avslutas anropar du IMFMediaSession::Close för att stänga Mediesessionen.
- Stäng av alla mediekällor som programmet skapade genom att anropa IMFMediaSource::Shutdown.
- Stäng mediasessionen genom att ringa IMFMediaSession::Shutdown.
När du använder mediasessionen bör programmet inte starta, pausa eller stoppa mediekällan direkt. Alla statliga ändringar måste initieras genom att anropa IMFMediaSession metoder. Tillståndsändringar i mediekällan hanteras av mediasessionen.
Många andra detaljer beror på programmets specifika funktioner.
Skyddat innehåll
Om du vill spela upp skyddat innehåll måste du skapa mediesessionen i den skyddade mediesökvägen (PMP) genom att anropa MFCreatePMPMediaSession. Den här funktionen skapar en instans av mediesessionen i PMP:n och returnerar en pekare till ett proxyobjekt som konverterar gränssnitt över processgränsen.
I de flesta avseenden är mediasessionen i PMP transparent för programmet. Programmet kan dock behöva anropa vissa åtgärder som gör det möjligt för användaren att spela upp innehållet. Användaren kan till exempel behöva skaffa en DRM-licens. Media Foundation definierar en allmän mekanism för dessa åtgärder med hjälp av IMFContentEnabler-gränssnittet.
Mer information finns i följande avsnitt:
Presentationsklocka
Mediasessionen hanterar alla aspekter av presentationsklockan:
Skapa presentationsklockan.
Välj tidskälla.
Meddela mediasänkningarna om tidsinställningarna
Starta, stoppa och pausa klockan efter behov.
Stänger av klockan.
Om du vill få en pekare till presentationsklockan anropar du IMFMediaSession::GetClock på mediasessionen. Presentationsklockan returnerar inte någon giltig tid förrän mediasessionen skickar händelsen MESessionTopologyStatus med flaggan MF_TOPOSTATUS_READY. Tills dess returnerar GetClock MF_E_CLOCK_NO_TIME_SOURCE.
Ett program som använder mediasessionen bör aldrig starta, stoppa eller pausa presentationsklockan. ändra klockfrekvens; eller stäng av klockan.
När programmet anropar IMFMediaSession::Startstartar mediasessionen presentationsklockan med en starttid som är lika med den startposition som anges i metoden Start. Mer information om mediesessionen finns i Media Session.
Relaterade ämnen