Jak odtwarzać pliki multimedialne za pomocą programu Media Foundation
W tym samouczku pokazano, jak odtwarzać pliki multimedialne przy użyciu obiektu sesji multimediów.
Warunki wstępne
Przed przeczytaniem tego tematu należy zapoznać się z następującymi pojęciami dotyczącymi programu Media Foundation:
- Sesja mediów
- Rozwiązywacz źródła
- Topologie
- Generatory zdarzeń medialnych
- deskryptory prezentacji
Notatka
W tym temacie nie opisano sposobu odtwarzania plików chronionych przez zarządzanie prawami cyfrowymi (DRM). Aby uzyskać informacje na temat drM w programie Microsoft Media Foundation, zobacz How to Play Protected Media Files.
Przegląd
Następujące obiekty są używane do odtwarzania pliku multimedialnego za pomocą sesji multimediów:
- źródło multimedialne to obiekt, który analizuje plik multimedialny lub inne źródło danych multimedialnych. Źródło multimediów tworzy obiekty strumienia dla każdego strumienia audio lub wideo w pliku. Dekodatory konwertują zakodowane dane multimedialne na nieskompresowane wideo i audio.
- Source Resolver tworzy źródło multimediów na podstawie adresu URL.
- Enhanced Video Renderer (EVR) renderuje wideo na ekranie.
- Streaming Audio Renderer (SAR) renderuje dźwięk do głośnika lub innego urządzenia wyjściowego audio.
- Topologia definiuje przepływ danych ze źródła multimediów do EVR i SAR.
- Sesja multimediów kontroluje przepływ danych i wysyła zdarzenia dotyczące stanu do aplikacji. Na poniższym diagramie przedstawiono ten proces.
diagram
Poniżej przedstawiono ogólny opis kroków potrzebnych do odtworzenia pliku multimedialnego przy użyciu sesji multimediów:
Wywołaj funkcję MFStartup, aby zainicjować platformę Media Foundation.
Wywołaj MFCreateMediaSession, aby utworzyć nową instancję Sesji multimediów.
Użyj narzędzia rozpoznawania źródła, aby utworzyć źródło multimediów. Aby uzyskać więcej informacji, zobacz Korzystanie z Rozwiązywacza Źródła.
Utwórz topologię łączącą źródło multimediów z EVR i SAR. W tym kroku aplikacja tworzy częściową topologię, która nie zawiera dekodatorów. Aby uzyskać więcej informacji, zobacz Tworzenie topologii odtwarzania.
Wywołaj IMFMediaSession::SetTopology, aby ustawić topologię w sesji multimediów.
Użyj interfejsu IMFMediaEventGenerator, aby pobrać zdarzenia z sesji multimediów.
Wywołaj IMFMediaSession::Uruchom, aby rozpocząć odtwarzanie. Po uruchomieniu odtwarzania można go wstrzymać, wywołując IMFMediaSession::P auselub zatrzymać go, wywołując IMFMediaSession::Stop.
Gdy aplikacja zakończy działanie, zwolnij zasoby:
- Wywołaj IMFMediaSession::Zamknij, aby zamknąć sesję multimediów. Ta metoda jest asynchroniczna. Po zakończeniu sesja multimediów wysyła zdarzenie MESessionClosed. Następnie można bezpiecznie wykonać pozostałe kroki.
- Wywołaj IMFMediaSource::Shutdown, aby zamknąć źródło multimediów.
- Wywołaj IMFMediaSession::Shutdown, aby zamknąć sesję multimediów.
- Wywołaj MFShutdown, aby zamknąć platformę Media Foundation.
W poniższych sekcjach przedstawiono kompletny przykład kodu:
- Krok 1: deklarowanie klasy CPlayer
- Krok 2. Tworzenie obiektu CPlayer
- Krok 3. Otwieranie pliku multimedialnego
- Krok 4. Tworzenie sesji multimediów
- Krok 5. Obsługa zdarzeń sesji multimedialnej
- Krok 6. Sterowanie odtwarzaniem
- Krok 7. Zamykanie sesji multimediów
- Przykład odtwarzania sesji multimediów
Tematy pokrewne