Udostępnij za pośrednictwem


Obiekt czytelnika

[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Source Reader i składnik zapisywania ujścia . czytnika źródeł i składników zapisywania ujścia zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał czytnika źródeł i modułu zapisywania ujścia zamiast zestawu SDK windows Media Format 11, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Obiekt czytelnika odczytuje przykłady danych z plików multimedialnych. Obiekt czytnika obsługuje obecnie pliki przy użyciu struktury plików w formacie advanced systems (ASF), a także plików MP3. Dane dostarczane przez obiekt czytelnika są domyślnie nieskompresowane i gotowe do renderowania, chociaż próbki można dostarczyć bez dekompresowania, jeśli jest to konieczne. Próbki są dostarczane asynchronicznie z obiektu czytelnika; Należy skonfigurować funkcję wywołania zwrotnego, aby je odbierać. W przypadku synchronicznego odtwarzania plików ASF użyj synchronicznego obiektu czytnika. Czytnik ani czytnik synchroniczny nie renderuje żadnych danych. Musisz podać własne procedury renderowania, aby wyświetlić nośnik pobrany z pliku.

Gdy plik zawiera zakodowane nośniki, które można dekodować za pomocą kodera obsługiwanego przez obiekt czytnika, można kontrolować format nieskompresowanych danych wyjściowych. Aby zmienić format zdekompresowanych danych wyjściowych strumienia, należy pobrać domyślny obiekt właściwości nośnika wyjściowego dla tego strumienia, wprowadzić zmiany i ponownie przypisać go do strumienia w czytniku. Obiekty właściwości nośnika wyjściowego są podrzędne dla obiektu czytnika i powinny być tworzone tylko przy użyciu metody IWMReader::GetOutputProps.

Obiekt czytnika jest tworzony przez funkcję WMCreateReader, która ustawia wskaźnik na interfejs IWMReader. Inne interfejsy obiektu czytelnika można uzyskać, wywołując metodę QueryInterface.

Następujące interfejsy są obsługiwane przez obiekt czytelnika.

Interfejs Opis
IReferenceClock Zapewnia dostęp do zegara systemowego używanego przez czytnik.
IWMDRMReader Zarządza pozyskiwaniem licencji, właściwościami drM i indywidualizacją klienta.
IWMDRMReader2 Zapewnia dostęp do licencji korzystających z poziomów ochrony danych wyjściowych (OPL) w celu określenia praw.
IWMHeaderInfo Ustawia i pobiera informacje nagłówka, w tym metadane, znaczniki i dane skryptu.
IWMHeaderInfo2 Pobiera informacje o koderach używanych do kodowania zawartości w pliku. Dziedziczy wszystkie metody IWMHeaderInfo.
IWMHeaderInfo3 Obsługuje duże rozmiary atrybutów, zduplikowane nazwy atrybutów i obsługę wielu języków. Dziedziczy wszystkie metody IWMHeaderInfo i IWMHeaderInfo2.
IWMPacketSize Pobiera rozmiar największego pakietu w pliku załadowanym do czytnika.
IWMPacketSize2 Pobiera rozmiar najmniejszego pakietu w pliku załadowanym do czytnika.
IWMProfile Zapewnia dostęp do informacji o profilu pliku załadowanego do czytnika.
IWMProfile2 Pobiera globalnie unikatowy identyfikator (GUID), jeśli istnieje, skojarzony z profilem. Dziedziczy wszystkie metody IWMProfile.
IWMProfile3 Obsługuje udostępnianie przepustowości i informacje o priorytetyzacji strumieni w profilu. Dziedziczy wszystkie metody IWMProfile i IWMProfile2.
IWMReader Udostępnia podstawowe funkcje odczytu plików, w tym operacje, takie jak otwieranie, zamykanie, uruchamianie, wstrzymywanie, wznawianie, zatrzymywanie i ustawianie właściwości wyjściowych.
IWMReaderAccelerator Komunikuje się z akceleratorem wideo DirectX.
IWMReaderAdvanced Udostępnia zaawansowane funkcje czytnika, takie jak zegar dostarczony przez użytkownika, alokacja buforu, statystyki powrotu i powiadomienia wyboru strumienia.
IWMReaderAdvanced2 Udostępnia dodatkowy zakres zaawansowanych metod dla istniejącego obiektu czytnika. Dziedziczy wszystkie metody IWMReaderAdvanced.
IWMReaderAdvanced3 Zapewnia zaawansowaną kontrolę wyszukiwania i przesyłania strumieniowego. Dziedziczy wszystkie metody IWMReaderAdvanced i IWMReaderAdvanced2.
IWMReaderAdvanced4 Udostępnia zaawansowane opcje czytnika, w tym obsługę wielu języków. Dziedziczy wszystkie metody IWMReaderAdvanced, IWMReaderAdvanced2i IWMReaderAdvanced3.
IWMReaderNetworkConfig Steruje ustawieniami konfiguracji sieci.
IWMReaderNetworkConfig2 Zapewnia dostęp do zaawansowanych ustawień konfiguracji sieci. Dziedziczy wszystkie metody IWMReaderNetworkConfig.
IWMReaderStreamClock Ustawia i anuluje czasomierze zegarów strumienia i pobiera bieżącą wartość określonego zegara strumienia.
IWMReaderTimecode Zawiera informacje o zakresach kodu czasu SMPTE w pliku załadowanym do czytnika.
IWMReaderTypeNegotiation Sprawdza, czy zmiany we właściwościach wyjściowych strumienia działają prawidłowo.

 

Następujące interfejsy wywołania zwrotnego można zaimplementować w aplikacji w celu śledzenia postępu obiektu czytnika.

Interfejs Opis
IWMCredentialCallback Uzyskuje poświadczenia użytkowników i sprawdza, czy mają uprawnienia dostępu do lokacji zdalnej.
IWMReaderAllocatorEx Udostępnia rozszerzone alternatywy dla metod AllocateForOutput i AllocateForStreamIWMReaderCallbackAdvanced.
IWMReaderCallback Udostępnia metody wywołania zwrotnego dla metod Start i OpenIWMReader.
IWMReaderCallbackAdvanced Udostępnia metody wywołania zwrotnego dla metod interfejsu IWMReaderAdvanced.
IWMStatusCallback Wymagane, gdy informacje o stanie muszą być przekazywane do aplikacji hosta.

 

obiektów

odczytywanie plików ASF

synchronicznego obiektu czytnika