Udostępnij przez


Aby wyszukać kod czasu SMPTE przy użyciu czytnika asynchronicznego

[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Source Reader i Sink Writer. Czytnik Źródła i Pisarz 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ódła i Modułu zapisu ujścia zamiast Windows Media Format 11 SDK , jeśli 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 odczytu może wyszukiwać punkt w pliku na podstawie kodu czasu SMPTE skojarzonego ze strumieniem wideo. Dane kodu czasowego są hermetyzowane w strukturach WMT_TIMECODE_EXTENSION_DATA dołączonych do przykładów wideo jako rozszerzeń jednostek danych.

Kody czasu SMPTE są definiowane przez zakres oraz kod czasu w jego obrębie. Zakres to ciągła seria kodów czasowych. Za każdym razem kod jest definiowany przez godziny, minuty, sekundy i ramki.

Aby wyszukać dane w pliku ASF według kodu czasu SMPTE przy użyciu czytnika asynchronicznego, wykonaj następujące kroki.

  1. Uzyskaj wskaźnik do interfejsu IWMReaderAdvanced3 obiektu czytnika, wywołując IWMReader::QueryInterface.
  2. Ustaw kod i czas trwania rozpoczęcia, wywołując IWMReaderAdvanced3::StartAtPosition. Należy określić numer strumienia wideo, który jest indeksowany według kodu czasowego. Czytnik zsynchronizuje pozostałe dane wyjściowe z czasem prezentacji określonej klatki w określonym strumieniu i rozpocznie dostarczanie próbek danych wyjściowych.
  3. Obsłuż próbki tak, jak zwykle robisz to w implementacji metody IWMReaderCallback::OnSample.

odczytywanie plików za pomocą asynchronicznego czytnika

praca z indeksami

obsługa kodu czasu SMPTE