Freigeben über


Vom Benutzer zugeordnete Beispielunterstützung

[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Es wurde von Source Reader und Sink Writer abgelöst. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit quellleser und Senkenschreiber anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Unter normalen Umständen erstellen sowohl das Reader-Objekt als auch das synchrone Reader-Objekt ein neues Pufferobjekt für jedes Beispiel, das an Ihre Anwendung übermittelt wird. Dies liegt daran, dass das Leseobjekt keine Möglichkeit hat, zu wissen, was Ihre Anwendung mit den Beispielen macht, nachdem es sie erhalten hat. Auch wenn viele Anwendungen Beispiele nur lesen, um sie sofort zu rendern, müssen einige Anwendungen möglicherweise Beispiele für einen längeren Zeitraum verwalten. Das Leseobjekt kann daher keinen der Puffer wiederverwenden, die es zugewiesen hat. es übermittelt sie an Ihre Anwendung, die dann die Kontrolle über sie hat.

Das Problem bei diesem Ansatz besteht darin, dass eine Datei eine immense Anzahl von Beispielen enthalten kann. Wenn für jedes von ihnen ein neues Pufferobjekt erstellt werden muss, wird viel Prozessorzeit für die Zuweisung und Freigabe von Arbeitsspeicher verschwendet. In zeitkritischen Anwendungen wie Media Playern kann dieser Mehraufwand sehr leistungsschädigend sein.

Um Leistungsprobleme von vom Leser zugewiesenen Beispielen zu verringern, unterstützen sowohl der Reader als auch der synchrone Reader vom Benutzer zugewiesene Beispiele. Um von Ihrer Anwendung zugeordnete Beispiele zu verwenden, ruft das Leseobjekt eine von Ihnen implementierte Beispiel-Zuordnungsrückrufmethode auf. Die Logik, die vom Rückruf verwendet wird, um Puffer an das Leseobjekt zu übermitteln, liegt ganz bei Ihnen. Sie können einen Pool von Puffern für die gesamte Datei oder mehrere Pufferpools, einen für jede Ausgabe oder jeden Stream oder ein anderes Schema verwenden, das für Ihre Anwendung funktioniert.

Zuweisen von Puffern für das Lesen von Dateien

Funktionen zum Lesen von Dateien