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.
- Pobierz lokalizację i rozmiar buforu zawierającego próbkę, wywołując INSSBuffer::GetBufferAndLength w buforze, który został przekazany jako pSample.
- Rozgałęzij logikę w zależności od numeru wyjściowego. Numer wyjściowy jest przekazywany do OnSample jako dwOutputNumber.
- 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