Aby zaimplementować wywołanie zwrotne OnSample

[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez Czytnik Źródła i Pisarz Ujścia . Czytnik Źródeł i Zapisujący Danych Wyjściowych 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.]

Czytnik asynchroniczny dostarcza próbki do aplikacji kontrolującej w kolejności czasu prezentacji, wykonując wywołania do metody wywołania zwrotnego IWMReaderCallback::OnSample. Podczas tworzenia aplikacji przy użyciu czytnika asynchronicznego należy zaimplementować OnSample, aby poradzić sobie z nieskompresowanymi przykładami. Zazwyczaj funkcje lub metody utworzone do renderowania zawartości będą wywoływane z poziomu OnSample.

Typowa implementacja wywołania zwrotnego OnSample obejmuje następujące kroki.

  1. Pobierz lokalizację i rozmiar buforu zawierającego próbkę, wywołując INSSBuffer::GetBufferAndLength w buforze, który został przekazany jako pSample.
  2. Rozgałęzij logikę w zależności od numeru wyjściowego. Numer wyjściowy jest przekazywany do OnSample jako dwOutputNumber.
  3. Uwzględnij logikę renderowania dla każdego numeru wyjściowego, który chcesz obsługiwać. Jeśli renderujesz przykłady z wielu danych wyjściowych, może być konieczne zsynchronizowanie renderowania.

Aplikacje dostarczające skompresowane próbki z plików ASF muszą zaimplementować IWMReaderCallbackAdvanced::OnStreamSample metodę wywołania zwrotnego. OnStreamSample działa niemal identycznie z OnSample, z tą różnicą, że otrzymuje skompresowane próbki według numeru strumienia zamiast nieskompresowanych próbek według liczby danych wyjściowych.

Interfejs IWMReaderCallback

interfejs IWMReaderCallbackAdvanced

odczytywanie plików za pomocą asynchronicznego czytnika

używanie metod wywołania zwrotnego