Delen via


Door de gebruiker toegewezen voorbeeldondersteuning

[De functie die is gekoppeld aan deze pagina, Windows Media Format 11 SDK, is een verouderde functie. Het is vervangen door Source Reader en Sink Writer. Bronlezer en Sink Writer zijn geoptimaliseerd voor Windows 10 en Windows 11. Microsoft raadt ten zeerste aan om nieuwe code te gebruiken bronlezer en Sink Writer- in plaats van Windows Media Format 11 SDK, indien mogelijk. Microsoft stelt voor dat bestaande code die gebruikmaakt van de verouderde API's, indien mogelijk opnieuw worden geschreven om de nieuwe API's te gebruiken.]

Onder normale omstandigheden maken zowel het lezerobject als het synchrone lezerobject een nieuw bufferobject voor elk voorbeeld dat aan uw toepassing wordt geleverd. Dit komt doordat het leesobject geen manier heeft om te weten wat uw toepassing doet met de voorbeelden nadat het ze heeft opgehaald. Hoewel veel toepassingen alleen voorbeelden lezen om ze onmiddellijk weer te geven, moeten sommige toepassingen mogelijk lang voorbeelden onderhouden. Het leesobject kan daarom geen buffers hergebruiken die het toewijst; het levert ze aan uw toepassing, die vervolgens controle over hen heeft.

Het probleem met deze benadering is dat een bestand een enorm aantal steekproeven kan bevatten. Als voor elk van deze een een nieuw bufferobject moet worden gemaakt, wordt er veel processortijd verspild aan het toewijzen en vrijgeven van geheugen. In tijdgevoelige toepassingen zoals mediaspelers kan deze overhead zeer nadelig zijn voor de prestaties.

Om de prestatieproblemen van door de lezer toegewezen voorbeelden te verlichten, ondersteunen zowel de lezer als de synchrone lezer door de gebruiker toegewezen voorbeelden. Als u voorbeelden wilt gebruiken die door uw toepassing zijn toegewezen, maakt het leesobject aanroepen naar een callback-methode voor voorbeeldtoewijzing die u implementeert. De logica die wordt gebruikt door de callback om buffers aan het leesobject te leveren, is volledig aan u. U kunt een groep buffers voor het hele bestand gebruiken of meerdere pools met buffers, één voor elke uitvoer of stroom, of een ander schema dat geschikt is voor uw toepassing.

Buffers toewijzen voor het lezen van bestanden

functies voor het lezen van bestanden