So implementieren Sie den OnSample-Rückruf

Der asynchrone Leser liefert Beispiele für die Steuerungsanwendung in der Präsentationszeitreihenfolge, indem Aufrufe an die IWMReaderCallback::OnSample-Rückrufmethode ausgeführt werden. Wenn Sie eine Anwendung mithilfe des asynchronen Readers erstellen, müssen Sie OnSample implementieren, um unkomprimierte Beispiele zu behandeln. In der Regel werden Funktionen oder Methoden zum Rendern von Inhalten innerhalb von OnSample aufgerufen.

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

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

Anwendungen, die komprimierte Beispiele aus ASF-Dateien bereitstellen, müssen die IWMReaderCallbackAdvanced::OnStreamSample-Rückrufmethode implementieren. OnStreamSample funktioniert fast identisch mit OnSample, außer dass es komprimierte Beispiele nach Datenstromnummer empfängt, anstatt unkomprimierte Beispiele nach Ausgabenummer zu erhalten.

IWMReaderCallback-Schnittstelle

IWMReaderCallbackAdvanced-Schnittstelle

Lesen von Dateien mit dem asynchronen Leser

Verwenden der Rückrufmethoden