Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[Funkcja skojarzona z tą stroną, windows Media Format 11 SDK, jest starszą funkcją. Został zastąpiony przez czytnik źródłowy i zapisator ujścia . Czytnik źródeł i Pisak 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.]
Czytnik asynchroniczny może dostarczać skompresowane próbki ze strumieni w plikach ASF. Aplikacje zwykle dostarczają skompresowane próbki podczas kopiowania strumienia z jednego pliku do innego. Nie zaleca się ponownego komkompresowania danych, które zostały zrekonstruowane ze skompresowanego strumienia, ponieważ dane są tracone w procesie kodowania. Nośniki cyfrowe, które zostały skompresowane więcej niż raz, będą miały zauważalny spadek jakości.
Zestaw SDK formatu Windows Media nie udostępnia żadnych metod dekodowania danych po wyodrębnieniu ich z pliku ASF. Jeśli otrzymasz skompresowane przykłady, a później chcesz je zdekompresować, musisz podać własny kod, aby to zrobić. Jednym ze sposobów obejścia tego ograniczenia jest zapisanie skompresowanych próbek do nowego pliku ASF, a następnie ponowne odczytanie ich do normalnych, nieskompresowanych próbek.
Aby otrzymywać skompresowane próbki za pomocą czytnika asynchronicznego, wykonaj następujące kroki.
- Zaimplementuj wywołanie zwrotne IWMReaderCallbackAdvanced::OnStreamSample. To wywołanie zwrotne jest zasadniczo identyczne w funkcji IWMReaderCallback::OnSample z tą różnicą, że dostarcza próbki według numeru strumienia, a próbki są nadal kompresowane.
- Przed rozpoczęciem odtwarzania uzyskaj wskaźnik do interfejsu IWMReaderAdvanced obiektu czytnika, wywołując IWMReader::QueryInterface.
- Skonfiguruj czytnik tak, aby dostarczał skompresowane przykłady dla żądanego strumienia, wywołując IWMReaderAdvanced::SetReceiveStreamSamples.
- Powtórz krok 3 dla każdego strumienia, dla którego wymagane jest skompresowane dostarczanie próbki.
Notatka
Strumienie obrazów nie są prawidłowe w przypadku dostarczania skompresowanego strumienia. Jeśli skopiujesz strumień obrazu z jednego pliku do innego, nie będzie działać w nowym pliku. Aby skopiować strumień obrazu z pliku do pliku, pobierz próbki strumienia obrazów według numeru wyjściowego i dołącz je do nowego pliku tak, jakby zawierał nowy strumień obrazu.
Tematy pokrewne