Lesen von Dateien mit dem asynchronen Reader
[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Sie wurde durch den Quellleser und den Senkenschreiber ersetzt. Quellleser und Senkenschreiber wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit den Quellleser und senkenden Writer anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
Der asynchrone Reader liest den Inhalt aus ASF-Dateien mit mehreren Threads und asynchronen Aufrufen. Die vom asynchronen Reader unterstützten Features machen ihn gut für Anwendungen geeignet, die Inhalte für Endbenutzer rendern.
Die grundlegendsten Funktionen des Reader-Objekts können in die folgenden Schritte unterteilt 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. Dazu gehören zwei Rückrufmethoden: OnStatus, das Nachrichten empfängt, die sich auf die status verschiedener Aspekte des Lesers beziehen, und OnSample, das unkomprimierte Beispiele vom Reader empfängt.
- Die Anwendung übergibt den Namen einer zu lesenden Datei an den Leser. Wenn der Leser die Datei öffnet, weist er jedem Stream eine Ausgabenummer zu. Wenn die Datei den gegenseitigen Ausschluss verwendet, weist der Leser allen sich gegenseitig ausschließenden Streams eine einzelne Ausgabe zu.
- Die Anwendung erhält Informationen zur Konfiguration der verschiedenen Ausgaben vom Reader. Die gesammelten Informationen ermöglichen es der Anwendung, Medienbeispiele ordnungsgemäß zu rendern.
- Die Anwendung weist den Leser an, mit dem Lesen von Daten aus der Datei zu beginnen. Der Leser beginnt, unkomprimierte Beispiele einzeln an den OnSample-Rückruf in Puffern zu übermitteln, die in Pufferobjekte eingeschlossen sind. Die vom Leser gelieferten Beispiele befinden sich in der Reihenfolge der Präsentationszeit. Der Leser sendet weiterhin Beispiele, bis die Anwendung sie beendet hat oder bis das Ende der Datei erreicht ist.
- Die Anwendung ist für das Rendern von Daten verantwortlich, nachdem sie vom Leser übermittelt wurden. Das Windows Media Format SDK bietet keine Renderingroutinen. In der Regel verwenden Anwendungen andere SDKs, um Daten zu rendern, z. B. das Microsoft DirectX® SDK oder die Multimediafunktionen des Microsoft Windows-Plattform-SDK.
- Wenn das Lesen abgeschlossen ist, weist die Anwendung den Leser an, die Datei zu schließen.
Diese Schritte werden unter anderem in der Beispielanwendung AudioPlayer veranschaulicht. Weitere Informationen finden Sie unter Beispielanwendungen.
Der Reader unterstützt auch erweiterte Funktionen. Mit dem Reader können Sie Folgendes tun:
- Anhalten der Wiedergabe einer Datei.
- Abrufen von Leseleistungsstatistiken.
- Steuern Sie die Streamauswahl für sich gegenseitig ausschließende Streams.
- Ordnen Sie Puffer für die Ausgabe manuell zu.
- Stellen Sie Ihre eigene Uhr bereit.
- Rufen Sie die status von Dateivorgängen ab (Puffern, Herunterladen oder Speichern).
- Öffnen Sie eine Datei mit der COM-Standardschnittstelle IStream.
- Suchen Sie nach bestimmten Punkten in einer ASF-Datei.
- Lesen Sie Profildaten aus dem Header der Datei.
In den folgenden Abschnitten wird die Verwendung des Reader-Objekts ausführlich beschrieben.
- So implementieren Sie Lesernachrichten 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 Lesegeräts
- So suchen Sie nach Framenummer mithilfe des asynchronen Lesegeräts
- So suchen Sie nach SMPTE-Zeitcode mithilfe des asynchronen Lesegeräts
- So suchen Sie nach Markern
- So halten Sie die Wiedergabe an oder beenden
- So rufen Sie Leserleistungsstatistiken ab
- So verwenden Sie die manuelle Streamauswahl
- So übermitteln Sie komprimierte Beispiele mit dem asynchronen Reader
Zugehörige Themen