Lesen von Dateien mit dem asynchronen Reader
Der asynchrone Reader liest den Inhalt aus ASF-Dateien mithilfe mehrerer Threads und asynchroner Aufrufe. Die vom asynchronen Reader unterstützten Features eignen sich gut für Anwendungen, die Inhalte für Endbenutzer rendern.
Die grundlegendsten Funktionen des Readerobjekts können in die folgenden Schritte aufgeschlüsselt werden. In diesen Schritten bezieht sich "die Anwendung" auf das Programm, das Sie mit dem Windows Media Format SDK schreiben.
- Die Anwendung implementiert die IWMReaderCallback-Schnittstelle, um Nachrichten vom Reader zu verarbeiten. Dies umfasst zwei Rückrufmethoden: OnStatus, das Nachrichten empfängt, die sich auf den Status verschiedener Aspekte des Readers bezieht, und OnSample, das unkomprimierte Beispiele vom Reader empfängt.
- Die Anwendung übergibt den Namen einer zu lesenden Datei an den Reader. Wenn der Reader die Datei öffnet, weist er jedem Stream eine Ausgabenummer zu. Wenn die Datei gegenseitigen Ausschluss verwendet, weist der Reader eine einzelne Ausgabe für alle sich gegenseitig ausschließenden Streams zu.
- Die Anwendung ruft Informationen zur Konfiguration der verschiedenen Ausgaben vom Reader ab. Die gesammelten Informationen ermöglichen der Anwendung das ordnungsgemäße Rendern von Medienbeispielen.
- Die Anwendung weist den Leser an, mit dem Lesen von Daten aus der Datei zu beginnen. Der Reader beginnt damit, unkomprimierte Beispiele in Puffern, die in Pufferobjekten umschlossen sind, nach und nach an den OnSample-Rückruf zu übertragen. Die vom Reader bereitgestellten Beispiele befinden sich in der Reihenfolge der Präsentationszeit. Der Reader wird weiterhin Stichproben bereitstellen, bis er von der Anwendung beendet wird oder bis das Ende der Datei erreicht ist.
- Die Anwendung ist für das Rendern von Daten verantwortlich, nachdem sie vom Reader übermittelt wurden. Das Windows Media Format SDK stellt keine Renderingroutinen bereit. In der Regel verwenden Anwendungen andere SDKs zum Rendern von Daten, z. B. das Microsoft DirectX® SDK oder die Multimediafunktionen des Microsoft Windows Platform SDK.
- Wenn das Lesen abgeschlossen ist, weist die Anwendung den Reader an, die Datei zu schließen.
Diese Schritte werden unter anderem in der AudioPlayer-Beispielanwendung veranschaulicht. Weitere Informationen finden Sie unter Beispielanwendungen.
Der Reader unterstützt auch erweiterte Funktionen. Der Reader ermöglicht Folgendes:
- Anhalten der Wiedergabe einer Datei.
- Abrufen von Readerleistungsstatistiken.
- Steuern der Streamauswahl für sich gegenseitig ausschließende Streams.
- Manuelles Zuordnen von Puffern für die Ausgabe.
- Geben Sie Ihre eigene Uhr an.
- Rufen Sie den Status von Dateivorgängen ab (Pufferung, Download oder Speichern).
- Öffnen Sie eine Datei mithilfe der COM-Standardschnittstelle IStream.
- Suchen Sie nach bestimmten Punkten in einer ASF-Datei.
- Liest Profildaten aus dem Header der Datei.
In den folgenden Abschnitten wird die Verwendung des Readerobjekts ausführlich beschrieben.
- So implementieren Sie Readernachrichten im OnStatus-Rückruf
- So implementieren Sie den OnSample-Rückruf
- So erstellen Sie einen Reader und öffnen eine Datei
- So rufen Sie Medienbeispiele mit dem asynchronen Reader ab
- So suchen Sie nach Zeit mithilfe des asynchronen Readers
- So suchen Sie nach Framenummer mithilfe des asynchronen Readers
- So suchen Sie mithilfe des asynchronen Readers nach SMPTE-Zeitcode
- So suchen Sie nach Markern
- So halten Sie die Wiedergabe an oder beenden sie
- So erhalten Sie Leseleistungsstatistiken
- So verwenden Sie die manuelle Streamauswahl
- So stellen Sie komprimierte Beispiele mit dem asynchronen Reader zur Verfügung