Sdílet prostřednictvím


Uživatelsky přidělená ukázková podpora

[Funkce přidružená k této stránce, Windows Media Format 11 SDK, je starší funkce. Bylo nahrazeno čtečkou zdroje a zapisovačem jímky. Čtečka zdrojů a zapisovač do 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é.]

Za normálních okolností objekt čtenáře i synchronní objekt čtenáře vytvoří nový objekt vyrovnávací paměti pro každou ukázku doručenou do vaší aplikace. Je to proto, že objekt pro čtení nemá žádný způsob, jak zjistit, co vaše aplikace dělá s ukázkami poté, co je získá. I když mnoho aplikací čte ukázky jenom pro okamžité vykreslení, některé aplikace můžou potřebovat uchovávat vzorky po dlouhou dobu. Objekt pro čtení proto nemůže znovu použít žádnou z vyrovnávacích pamětí, které přidělí; doručí je do vaší aplikace, která nad nimi pak bude mít kontrolu.

Problém s tímto přístupem spočívá v tom, že soubor může obsahovat obrovský počet vzorků. Jestliže každá z nich vyžaduje vytvoření nového objektu vyrovnávací paměti, hodně času procesoru je promarňováno přidělováním a uvolňováním paměti. V aplikacích citlivých na čas, jako jsou přehrávače médií, mohou být tyto režijní náklady velmi škodlivé pro výkon.

Aby se zmírnily problémy s výkonem vzorků přidělených čtenářem, jak čtenář, tak synchronní čtenář podporují vzorky přidělené uživatelem. Pokud chcete použít ukázky přidělené vaší aplikací, čtecí objekt volá metodu přidělení ukázkového zpětného volání, kterou implementujete. Je zcela na vás, jakou logiku použijete ve zpětném volání k doručování vyrovnávacích pamětí do objektu čtení. Můžete použít fond vyrovnávacích pamětí pro celý soubor nebo použít více fondů vyrovnávacích pamětí, jeden pro každý výstup nebo datový proud nebo jakékoli jiné schéma, které funguje pro vaši aplikaci.

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

funkce čtení souborů