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.
Následuje obecný přehled kroků potřebných k přehrání mediálního souboru pomocí relace médií:
Zavolejte funkci MFStartup pro inicializaci platformy Media Foundation.
Zavolejte MFCreateMediaSession k vytvoření nové instance relace médií.
Pomocí řešitele zdroje vytvořte zdroj médií. Další informace viz Použití řešitele zdroje.
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í.
Zavolejte IMFMediaSession::SetTopology pro nastavení topologie v mediální relaci.
Pomocí rozhraní IMFMediaEventGenerator můžete získávat události z relace médií.
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.
Po ukončení aplikace uvolněte prostředky:
- 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.
- Zavolejte IMFMediaSource::Shutdown k vypnutí zdroje médií.
- Zavolejte IMFMediaSession::Shutdown k vypnutí relace médií.
- Voláním MFShutdown vypnete platformu Media Foundation.
Následující části ukazují kompletní příklad kódu:
- Krok 1: Deklarujte třídu CPlayer
- krok 2: Vytvoření objektu CPlayer
- Krok 3: Otevření multimediálního souboru
- krok 4: Vytvoření relace médií
- Krok 5: Zpracování událostí relace médií
- krok 6: Řízení přehrávání
- krok 7: Vypnutí relace médií
- Příklad přehrávání mediální relace
Související témata