Sdílet prostřednictvím


Přehrávání mediálních souborů pomocí Media Foundation

V tomto kurzu se dozvíte, jak přehrávat mediální soubory pomocí objektu Media Session.

Požadavky

Než si přečtete toto téma, měli byste být obeznámeni s následujícími koncepty Media Foundation:

Poznámka

Toto téma nepopisuje, jak přehrávat soubory chráněné správou digitálních práv (DRM). Informace o DRM v Microsoft Media Foundation naleznete v tématu Jak přehrát chráněné mediální soubory.

 

Přehled

Následující objekty se používají k přehrání multimediálního souboru s relací médií:

  • zdroj médií je objekt, který analyzuje mediální soubor nebo jiný zdroj mediálních dat. Zdroj médií vytvoří stream objekty pro každý zvukový stream nebo video stream v souboru. Dekodéry převádějí kódovaná média na nekomprimované video a zvuk.
  • Řešitel zdroje vytvoří zdroj média z adresy URL.
  • Enhanced Video Renderer (EVR) vykresluje video na obrazovku.
  • Stream Audio Renderer (SAR) vykreslí zvuk do reproduktoru nebo jiného zvukového výstupního zařízení.
  • Topologie definuje tok dat ze zdroje médií do EVR a SAR.
  • Media Session řídí tok dat a odesílá události stavu do aplikace. Tento proces znázorňuje následující diagram.

diagram zobrazující přehrávání pomocí mediální relace

Následuje obecný přehled kroků potřebných k přehrání mediálního souboru pomocí relace médií:

  1. Zavolejte funkci MFStartup pro inicializaci platformy Media Foundation.

  2. Zavolejte MFCreateMediaSession k vytvoření nové instance relace médií.

  3. Pomocí řešitele zdroje vytvořte zdroj médií. Další informace viz Použití řešitele zdroje.

  4. Vytvořte topologii, která propojuje zdroj médií s EVR a SAR. V tomto kroku aplikace vytvoří částečnou topologii, která neobsahuje dekodéry. Další informace naleznete v tématu Vytváření topologií přehrávání.

  5. Zavolejte IMFMediaSession::SetTopology pro nastavení topologie v mediální relaci.

  6. Pomocí rozhraní IMFMediaEventGenerator můžete získávat události z relace médií.

  7. Zavolejte IMFMediaSession::Start pro zahájení přehrávání. Po spuštění přehrávání ji můžete pozastavit voláním MMFMediaSession::P ausenebo ho zastavit voláním MMFMediaSession::Stop.

  8. Po ukončení aplikace uvolněte prostředky:

    1. Zavolejte IMFMediaSession::Close, abyste zavřeli relaci médií. Tato metoda je asynchronní. Po dokončení mediální relace odešle událost typu MESessionClosed. Pak je bezpečné provést zbývající kroky.
    2. Zavolejte IMFMediaSource::Shutdown k vypnutí zdroje médií.
    3. Zavolejte IMFMediaSession::Shutdown k vypnutí relace médií.
    4. Voláním MFShutdown vypnete platformu Media Foundation.

Následující části ukazují kompletní příklad kódu:

Mediální relace

přehrávání zvuku nebo videa