Omówienie architektury programu Media Foundation
W tym temacie opisano ogólny projekt programu Microsoft Media Foundation. Aby uzyskać informacje na temat używania programu Media Foundation do wykonywania określonych zadań programistycznych, zobacz Media Foundation Programming Guide.
Na poniższym diagramie przedstawiono ogólny widok architektury programu Media Foundation.
Program Media Foundation udostępnia dwa odrębne modele programowania. Pierwszy model, pokazany po lewej stronie diagramu, używa przepływu danych od początku do końca dla danych multimedialnych. Aplikacja inicjuje potok, na przykład podając adres URL pliku do odtwarzania, a następnie wywołuje metody do zarządzania przesyłaniem strumieniowym. W drugim modelu widocznym po prawej stronie diagramu aplikacja pobiera dane ze źródła lub wypycha je do miejsca docelowego (lub obu tych elementów). Ten model jest szczególnie przydatny, jeśli musisz przetworzyć dane, ponieważ aplikacja ma bezpośredni dostęp do strumienia danych.
Typy pierwotne i platforma
Zaczynając od dołu diagramu, prymitywy są obiektami pomocniczymi używanymi w interfejsie API Media Foundation.
- Atrybuty to ogólny sposób przechowywania informacji wewnątrz obiektu jako listy par klucz/wartość.
- Typy multimediów opisują format strumienia danych multimedialnych.
- Bufory multimedialne przechowują fragmenty danych multimedialnych, takie jak klatki wideo i próbki audio, i są używane do transportu danych między obiektami.
- Próbki multimediów to kontenery dla buforów multimedialnych. Zawierają również metadane dotyczące buforów, takich jak sygnatury czasowe.
Interfejsy API platformy Media Foundation zapewniają podstawowe funkcje używane przez pipeline Media Foundation, takie jak asynchroniczne wywołania zwrotne i kolejki robocze. Niektóre aplikacje mogą wymagać bezpośredniego wywołania tych interfejsów API; Ponadto będą one potrzebne w przypadku zaimplementowania niestandardowego źródła, przekształcenia lub ujścia dla programu Media Foundation.
Potok multimediów
Potok multimediów zawiera trzy typy obiektów, które generują lub przetwarzają dane multimedialne.
- Źródła Multimediów wprowadzają dane do rury. Źródło multimediów może pobierać dane z pliku lokalnego, takiego jak plik wideo; ze strumienia sieciowego; lub z urządzenia przechwytywania sprzętu.
- Media Foundation Transforms (MFTs) przetwarza dane ze strumienia. Kodery i dekodatory są implementowane jako MFTs.
- Zlewy multimedialne zużywają dane, na przykład wyświetlając wideo na ekranie, odtwarzając dźwięk lub zapisując dane w pliku multimedialnym.
Osoby trzecie mogą implementować własne niestandardowe źródła, ujścia i MFT; na przykład w celu obsługi nowych formatów plików multimedialnych.
Sesja medialna kontroluje przepływ danych i wykonuje zadania, takie jak kontrola jakości, synchronizacja audio/wideo oraz dostosowanie do zmian formatu.
Czytnik źródła i zapis w odbiorniku
Czytnik źródła i zapis ujścia oferują alternatywny sposób korzystania z podstawowych komponentów Media Foundation (źródeł medialnych, transformacji i odbiorników medialnych). Czytnik źródłowy hostuje źródło multimedialne i zero lub więcej dekoderów, podczas gdy zapisujący hostuje ujście multimedialne i zero lub więcej koderów. Czytnik źródła umożliwia pobieranie skompresowanych lub nieskompresowanych danych ze źródła multimediów oraz wykorzystanie modułu zapisu ujścia do kodowania i wysyłania danych do ujścia multimediów.
Notatka
Czytnik źródłowy i zapisnik wyjściowy są dostępne w systemie Windows 7.
Ten model programowania zapewnia aplikacji większą kontrolę nad przepływem danych, a także zapewnia aplikacji bezpośredni dostęp do danych ze źródła.
Tematy pokrewne
-
architektura Media Foundation