Sdílet prostřednictvím


Přidělování vyrovnávacích pamětí pro čtení souborů

[Funkce přidružená k této stránce, Windows Media Format 11 SDK, je starší funkce. Byl nahrazen čtečkou zdroje a zapisovačem. a zapisovač jímky jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal Čtečka zdroje a Zapisovač výstupu místo Windows Media Format 11 SDK, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]

V nejzásadnějším scénáři čtení souborů jsou vyrovnávací paměti používané k doručování vzorků přiděleny objektem čtení (objekt čtenáře nebo synchronní objekt čtenáře). Můžete si ale buffery přidělit sami. Další informace o výhodách přidělování vlastních vyrovnávacích pamětí najdete v tématu uživatelsky přidělená ukázková podpora.

Pokud chcete pro čtení souborů použít vlastní vyrovnávací paměti, proveďte následující kroky.

  1. Implementujte zpětné volání nebo několik zpětných volání, které může čtenář volat, když potřebuje vyrovnávací paměť. Pokud čtete výstupní ukázky, použijte IWMReaderAllocatorEx::AllocateForOutputEx. Pokud čtete ukázky datových proudů, použijte IWMReaderAllocatorEx::AllocateForStreamEx. Zahrňte jakoukoli logiku pro správu vyrovnávacích pamětí, která vyhovuje vaší aplikaci.
  2. Přidělte fond vyrovnávacích pamětí, které použijete pro čtení souborů.
  3. Nastavení čtečky nebo synchronní čtečky pro čtení Další informace naleznete v tématu čtení souborů pomocí asynchronní čtečky nebo čtení souborů pomocí synchronní čtečky.
  4. Než začnete psát, zavolejte IWMReaderAdvanced::SetAllocateForOutput nebo IWMReaderAdvanced::SetAllocateForStream pro každý výstup a datový proud, pro který přidělujete vyrovnávací paměti pomocí objektu čtenáře. Pro synchronní čtečku volejte IWMSyncReader2::SetAllocateForOutput nebo IWMSyncReader2::SetAllocateForStream.
  5. Začněte číst soubor.

Objekt pro čtení provede volání příslušného zpětného volání alokátoru a získá ukázky z vaší aplikace. Logika správy vyrovnávací paměti musí obsahovat způsob, jak signalizovat, že vyrovnávací paměť je volná a může být znovu použita. Vyrovnávací paměť se obvykle při vykreslení jejího obsahu vrátí do fondu. V závislosti na vaší aplikaci možná budete potřebovat jen několik vyrovnávacích pamětí ve fondu nebo mnoho.

čtení souborů ASF