Udostępnij przez


Używanie obiektów aktywacji kodera

Do konwertowania plików multimedialnych na format ASF można użyć koderów Windows Media. Aby korzystać z tych koderów, muszą być zarejestrowane w systemie.

Aby uzyskać informacje na temat rejestracji enkodera, zobacz instancjowanie enkodera MFT.

Używanie obiektów aktywacji enkodera

Alternatywnie, zamiast używać interfejsu kodera IMFTransform (opisanego w Tworzeniu kodera przy użyciu CoCreateInstance), możesz utworzyć instancję obiektu aktywacji dla kodera. Obiekty aktywacji ułatwiają tworzenie kodera i program Media Foundation udostępnia następujące dwie funkcje dla tego podejścia:

Obie te funkcje wymagają utworzenia typu nośnika docelowego i ustawienia właściwości kodowania przed wywołaniem tych funkcji. Jeśli aplikacja używa składników ASF warstwy potoku do kodowania pliku w formacie ASF i utworzyłeś oraz skonfigurowałeś ujścia multimediów ASF, możesz uzyskać ten zestaw informacji z ujścia multimediów ASF.

MFCreateWMAEncoderActivate i MFCreateWMVEncoderActivate ustalają typ wyjściowy kodera na typ nośnika określony przez aplikację.

Uwaga Jeśli używasz MFCreateWMAEncoderActivate i MFCreateWMVEncoderActivate można aktywować koder, wywołując IMFActivate::ActivateObject, ale nie można zmienić danych wejściowych i typów nośników wyjściowych kodera ani zmienić żadnego z właściwości kodowania.

Aby uzyskać więcej informacji na temat tworzenia obiektów programu Media Foundation przy użyciu obiektów aktywacji, zobacz Activation Objects.

Aby uzyskać typ mediów docelowych z odbiornika danych multimedialnych ASF

  1. Pobierz wskaźnik do wskaźnika IMFASFContentInfo wskaźnika ujścia multimediów ASF, wywołując IMFMediaSink::QueryInterface ujścia multimediów ASF i przekazując IID_IMFASFContentInfo jako identyfikator interfejsu.
  2. Pobierz obiekt profilu ASF skojarzony z obiektem ContentInfo.
  3. Wylicz strumienie w profilu, aby pobrać typ nośnika strumienia.

Aby uzyskać właściwości kodowania z odbiornika multimedialnego ASF

  1. Jeśli skonfigurowałeś właściwości kodowania w ujściu multimediów (opisane w Ustawianie właściwości w ujściu pliku), możesz uzyskać odwołanie do magazynu właściwości ujścia, wywołując IMFMediaSink::QueryInterface na ujściu multimediów ASF i przekazując IID_IPropertyStore jako identyfikator interfejsu.

  2. Jeśli masz wskaźnik do obiektu ContentInfo odbiornika, możesz wywołać IMFASFContentInfo::GetEncodingConfigurationPropertyStore, aby uzyskać odwołanie do sklepu właściwości odbiornika multimediów.

    Upewnij się, że wszystkie właściwości kodowania ustawione na ujściu multimediów ASF są odzwierciedlane w magazynie właściwości przekazanym do MFCreateWMAEncoderActivate i MFCreateWMVEncoderActivate. Koder jest konfigurowany automatycznie na podstawie ustawień określonych przez aplikację.

Podczas tworzenia węzła przekształcenia w topologii kodowania można ustawić typ obiektu jako wskaźnik IMFActivate odebrany w tych dwóch wywołaniach. Po rozwiązaniu topologii sesja multimedialna używa obiektu aktywacji do utworzenia instancji kodera MFT.

Wyliczenie koderów w Windows 7 i późniejszych

W przypadku aplikacji działających w systemie Windows 7, oprócz MFTEnum, można wyliczyć kodery MFT, wywołując MFTEnumEx. Ta funkcja zwraca wskaźnik do obiektu aktywacji kodera MFT. Struktura funkcji jest bardzo podobna do MFTEnum opisanych powyżej, z wyjątkiem tego, że MFTEnumExzwraca tablicę wskaźników IMFActivate dla koderów MFT, które spełniają kryteria wyszukiwania.

Utworzenie instancji kodera MFT

Windows Media Encoders

obiekty aktywacji