Übersicht über die Media Foundation-Architektur
In diesem Thema wird der allgemeine Entwurf von Microsoft Media Foundation beschrieben. Informationen zur Verwendung von Media Foundation für bestimmte Programmieraufgaben finden Sie im Media Foundation-Programmierhandbuch.
Das folgende Diagramm zeigt eine allgemeine Ansicht der Media Foundation-Architektur.
Media Foundation bietet zwei unterschiedliche Programmiermodelle. Das erste Modell, das auf der linken Seite des Diagramms dargestellt wird, verwendet eine End-to-End-Pipeline für Mediendaten. Die Anwendung initialisiert die Pipeline, z. B. durch Angabe der URL einer datei, die wiedergegeben werden soll, und ruft dann Methoden auf, um das Streaming zu steuern. Im zweiten Modell, das auf der rechten Seite des Diagramms angezeigt wird, ruft die Anwendung Entweder Daten aus einer Quelle ab oder pusht sie an ein Ziel (oder beides). Dieses Modell ist besonders nützlich, wenn Sie die Daten verarbeiten müssen, da die Anwendung direkten Zugriff auf den Datenstrom hat.
Grundtypen und Plattform
Beginnend am unteren Rand des Diagramms sind die Grundtypen Hilfsobjekte, die in der Media Foundation-API verwendet werden:
- Attribute sind eine generische Möglichkeit, Informationen in einem Objekt als Liste von Schlüssel-Wert-Paaren zu speichern.
- Medientypen beschreiben das Format eines Mediendatenstroms.
- Medienpuffer enthalten Blöcke von Mediendaten, z. B. Videoframes und Audiobeispiele, und werden zum Transport von Daten zwischen Objekten verwendet.
- Medienbeispiele sind Container für Medienpuffer. Sie enthalten auch Metadaten zu den Puffern, z. B. Zeitstempel.
Die Media Foundation Platform-APIs bieten einige Kernfunktionen, die von der Media Foundation-Pipeline verwendet werden, z. B. asynchrone Rückrufe und Arbeitswarteschlangen. Bestimmte Anwendungen müssen diese APIs möglicherweise direkt aufrufen. Außerdem benötigen Sie sie, wenn Sie eine benutzerdefinierte Quelle, Transformation oder Senke für Media Foundation implementieren.
Medienpipeline
Die Medienpipeline enthält drei Objekttypen, die Mediendaten generieren oder verarbeiten:
- Medienquellen führen Daten in die Pipeline ein. Eine Medienquelle kann Daten aus einer lokalen Datei abrufen, z. B. aus einer Videodatei. aus einem Netzwerkdatenstrom; oder von einem Hardwareerfassungsgerät.
- Media Foundation Transforms (MFTs) verarbeiten Daten aus einem Stream. Encoder und Decoder werden als MFTs implementiert.
- Mediensenken nutzen die Daten; Zum Beispiel, indem Sie Videos auf dem Display anzeigen, Audio wiedergeben oder die Daten in eine Mediendatei schreiben.
Drittanbieter können ihre eigenen benutzerdefinierten Quellen, Senken und MFTs implementieren. beispielsweise, um neue Mediendateiformate zu unterstützen.
Die Mediensitzung steuert den Datenfluss durch die Pipeline und übernimmt Aufgaben wie Qualitätskontrolle, Audio-/Videosynchronisierung und Reaktion auf Formatänderungen.
Quellleser und Senkenschreiber
Quellleser und Senkenschreiber bieten eine alternative Möglichkeit zur Verwendung der grundlegenden Media Foundation-Komponenten (Medienquellen, Transformationen und Mediensenken). Der Quellleser hostet eine Medienquelle und null oder mehr Decoder, während der Senkenschreiber eine Mediensenke und null oder mehr Encoder hostet. Sie können den Quellleser verwenden, um komprimierte oder unkomprimierte Daten aus einer Medienquelle abzurufen, und den Senkenschreiber verwenden, um Daten zu codieren und die Daten an eine Mediensenke zu senden.
Hinweis
Der Quellleser und der Senkenschreiber sind in Windows 7 verfügbar.
Dieses Programmiermodell gibt der Anwendung mehr Kontrolle über den Datenfluss und gewährt der Anwendung auch direkten Zugriff auf die Daten aus der Quelle.
Zugehörige Themen