Wiedergeben von Mediendateien mit Media Foundation

In diesem Tutorial erfahren Sie, wie Sie Mediendateien mithilfe des Mediensitzungsobjekts wiedergeben.

Voraussetzungen

Bevor Sie dieses Thema lesen, sollten Sie mit den folgenden Media Foundation Konzepten vertraut sein:

Hinweis

In diesem Thema wird nicht beschrieben, wie Dateien wiedergegeben werden, die durch drm (Digital Rights Management) geschützt sind. Informationen zum DRM in Microsoft Media Foundation finden Sie unter Wiedergeben geschützter Mediendateien.

Übersicht

Die folgenden Objekte werden verwendet, um eine Mediendatei mit der Mediensitzung wiederzuspielen:

  • Eine Medienquelle ist ein Objekt, das eine Mediendatei oder eine andere Quelle von Mediendaten analysiert. Die Medienquelle erstellt Streamobjekte für jeden Audio- oder Videostream in der Datei. Decoder konvertieren codierte Mediendaten in unkomprimierte Video- und Audiodaten.
  • Der Quelllöser erstellt eine Medienquelle aus einer URL.
  • Der Enhanced Video Renderer (EVR) rendert Videos auf dem Bildschirm.
  • Der StreamingAudiorenderer (SAR) rendert Audiodaten an einen Lautsprecher oder ein anderes Audioausgabegerät.
  • Eine Topologie definiert den Datenfluss von der Medienquelle zu EVR und SAR.
  • Die Mediensitzung steuert den Datenfluss und sendet Statusereignisse an die Anwendung. Dieser Prozess wird anhand des folgenden Diagramms veranschaulicht.

Diagramm zur Wiedergabe mithilfe der Mediensitzung

Im Folgenden werden die Schritte beschrieben, die zum Wiedergeben einer Mediendatei mithilfe der Mediensitzung erforderlich sind:

  1. Rufen Sie die MFStartup-Funktion auf, um die Media Foundation Plattform zu initialisieren.

  2. Rufen Sie MFCreateMediaSession auf, um eine neue Instanz der Mediensitzung zu erstellen.

  3. Verwenden Sie den Quell resolver, um eine Medienquelle zu erstellen. Weitere Informationen finden Sie unter Verwenden des Quelllösers.

  4. Erstellen Sie eine Topologie, die die Medienquelle mit evr und SAR verbindet. In diesem Schritt erstellt die Anwendung eine Teiltopologie, die die Decoder nicht enthält. Weitere Informationen finden Sie unter Erstellen von Wiedergabetopologien.

  5. Rufen Sie DIE DATEI ÜBERMEDIASESSION::SetTopology auf, um die Topologie in der Mediensitzung festzulegen.

  6. Verwenden Sie die SCHNITTSTELLE VONMEDIAEVENTGENERATOR, um Ereignisse aus der Mediensitzung abzurufen.

  7. Rufen Sie DEN AUFRUF VONMEDIASESSION::Start auf, um die Wiedergabe zu starten. Nachdem die Wiedergabe gestartet wurde, können Sie sie anhalten, indem Sie DEN AUFRUF VONMEDIASESSION::P auseausführen, oder sie beenden, indem Sie DANNMEDIASession::Stopaufrufen.

  8. Wenn die Anwendung beendet wird, geben Sie Ressourcen frei:

    1. Rufen Sie ÜBERMEDIASESSION::Close auf, um die Mediensitzung zu schließen. Diese Methode ist asynchron. Nach Abschluss des Vorgangs sendet die Mediensitzung ein MESessionClosed-Ereignis. Anschließend ist es sicher, die verbleibenden Schritte auszuführen.
    2. Rufen Sie ÜBERMEDIASOURCE::Shutdown auf, um die Medienquelle herunterzufahren.
    3. Rufen Sie DIE SPERREMediaSession::Shutdown auf, um die Mediensitzung herunterzufahren.
    4. Rufen Sie MFShutdown auf, um die Media Foundation Plattform herunterzufahren.

In den folgenden Abschnitten wird ein vollständiges Codebeispiel gezeigt:

Mediensitzung

Audio-/Videowiedergabe