Udostępnij za pośrednictwem


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:

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 przedstawiający odtwarzanie przy użyciu sesji multimedialnej

Poniżej przedstawiono ogólny opis kroków potrzebnych do odtworzenia pliku multimedialnego przy użyciu sesji multimediów:

  1. Wywołaj funkcję MFStartup, aby zainicjować platformę Media Foundation.

  2. Wywołaj MFCreateMediaSession, aby utworzyć nową instancję Sesji multimediów.

  3. 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.

  4. 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.

  5. Wywołaj IMFMediaSession::SetTopology, aby ustawić topologię w sesji multimediów.

  6. Użyj interfejsu IMFMediaEventGenerator, aby pobrać zdarzenia z sesji multimediów.

  7. 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.

  8. Gdy aplikacja zakończy działanie, zwolnij zasoby:

    1. 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.
    2. Wywołaj IMFMediaSource::Shutdown, aby zamknąć źródło multimediów.
    3. Wywołaj IMFMediaSession::Shutdown, aby zamknąć sesję multimediów.
    4. Wywołaj MFShutdown, aby zamknąć platformę Media Foundation.

W poniższych sekcjach przedstawiono kompletny przykład kodu:

sesja multimedialna

Odtwarzanie audio/wideo