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ła i zapis ścieku . Czytnik źródła i zapisujnik 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.]
Kodek Windows Media Video 9 obsługuje wstawianie wymuszonych ramek kluczowych. Po przekazaniu próbki do składnika zapisującego można określić, że musi ona być zakodowana jako klatka kluczowa .
Aby wymusić wstawienie klatki kluczowej dla próbki, wykonaj następujące kroki.
- Przydziel bufor do przechowywania próbki i pobierz wskaźnik do interfejsu INSSBuffer, który zawiera bufor, wywołując IWMWriter::AllocateSample.
- Pobierz lokalizację i rozmiar buforu utworzonego w kroku 1, wywołując INSSBuffer::GetBufferAndLength.
- Skopiuj przykładowe dane do lokalizacji buforu, upewniając się, że próbka przekazana będzie mieścić się w przydzielonym buforze. W zależności od źródła przykładów można użyć różnych funkcji do skopiowania danych. Jeśli na przykład kopiujesz strumień z pliku AVI, możesz użyć funkcji AVI, AVIStreamRead.
- Zaktualizuj ilość danych używanych w buforze, aby odzwierciedlić rzeczywisty rozmiar próbki, wywołując INSSBuffer::SetLength.
- Uzyskaj wskaźnik do interfejsu INSSBuffer3, wywołując INSSBuffer::QueryInterface.
- Ustaw przykład jako wymuszoną ramkę klucza, wywołując metodę INSSBuffer3::SetProperty, aby ustawić właściwość WM_SampleExtensionGUID_OutputCleanPoint. Ta właściwość jest typu logicznego; ustaw ją na PRAWDA.
- Przekaż interfejs buforu do modułu zapisywania wraz z numerem wejściowym i czasem próbki przy użyciu metody IWMWriter::WriteSample.
Tematy pokrewne