So implementieren Sie den OnSample-Rückruf

[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.]

Der asynchrone Reader übermittelt Beispiele an die steuernde Anwendung in Der Präsentationszeitreihenfolge, indem er aufruft die IWMReaderCallback::OnSample-Rückrufmethode . Wenn Sie eine Anwendung mit dem asynchronen Reader erstellen, müssen Sie OnSample implementieren, um nicht komprimierte Beispiele zu verarbeiten. In der Regel werden Funktionen oder Methoden, die zum Rendern von Inhalten erstellt wurden, innerhalb von OnSample aufgerufen.

Die typische Implementierung des OnSample-Rückrufs umfasst die folgenden Schritte.

  1. Rufen Sie die Position und Größe des Puffers ab, der das Beispiel enthält, indem Sie INSSBuffer::GetBufferAndLength für den als pSample übergebenen Puffer aufrufen.
  2. Verzweigen Sie Ihre Logik abhängig von der Ausgabenummer. Die Ausgabenummer wird als dwOutputNumber an OnSample übergeben.
  3. Fügen Sie Renderinglogik für jede Ausgabenummer ein, die Sie unterstützen möchten. Wenn Sie Beispiele aus mehreren Ausgaben rendern, müssen Sie das Rendering möglicherweise synchronisieren.

Anwendungen, die komprimierte Beispiele aus ASF-Dateien bereitstellen, müssen die IWMReaderCallbackAdvanced::OnStreamSample-Rückrufmethode implementieren. OnStreamSample funktioniert fast identisch mit OnSample, mit der Ausnahme, dass komprimierte Stichproben nach Streamnummer anstelle von nicht komprimierten Stichproben nach Ausgabenummer empfangen werden.

IWMReaderCallback-Schnittstelle

IWMReaderCallbackAdvanced-Schnittstelle

Lesen von Dateien mit dem asynchronen Reader

Verwenden der Rückrufmethoden