Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Liest das nächste Beispiel aus der Medienquelle.
Syntax
HRESULT ReadSample(
[in] DWORD dwStreamIndex,
[in] DWORD dwControlFlags,
[out] DWORD *pdwActualStreamIndex,
[out] DWORD *pdwStreamFlags,
[out] LONGLONG *pllTimestamp,
[out] IMFSample **ppSample
);
Die Parameter
[in] dwStreamIndex
Der Datenstrom, aus dem Daten abgerufen werden sollen. Der Wert kann eine der folgenden Sein:
[in] dwControlFlags
Ein bitweises ODER von null oder mehr Flags aus der MF_SOURCE_READER_CONTROL_FLAG Enumeration.
[out] pdwActualStreamIndex
Empfängt den nullbasierten Index des Datenstroms.
[out] pdwStreamFlags
Empfängt ein bitweises ODER von null oder mehr Flags aus der MF_SOURCE_READER_FLAG-Aufzählung .
[out] pllTimestamp
Empfängt den Zeitstempel des Beispiels oder die Uhrzeit des in pdwStreamFlags angegebenen Datenstromereignisses. Die Zeit wird in 100-Nanosekundeneinheiten angegeben.
[out] ppSample
Empfängt einen Zeiger auf die IMFSample-Schnittstelle oder den Wert NULL (siehe Hinweise). Wenn dieser Parameter einen Nicht-NULL-Zeiger empfängt, muss der Aufrufer die Schnittstelle freigeben.
Rückgabewert
Die Methode gibt ein HRESULT zurück. Mögliche Werte sind die Werte in der folgenden Tabelle, sind jedoch nicht beschränkt.
| Rückgabecode | Description |
|---|---|
|
Die Methode wurde erfolgreich ausgeführt. |
|
Ungültige Anforderung. |
|
Der dwStreamIndex-Parameter ist ungültig. |
|
Ein Löschvorgang steht aus. Siehe IMFSourceReader::Flush. |
|
Unzulässiges Argument. Weitere Informationen finden Sie in der "Anmerkungen". |
Bemerkungen
Wenn der angeforderte Datenstrom nicht ausgewählt ist, wird der Rückgabecode MF_E_INVALIDREQUEST. Siehe IMFSourceReader::SetStreamSelection.
Diese Methode kann synchron oder asynchron abgeschlossen werden. Wenn Sie beim Erstellen des Quelllesers einen Rückrufzeiger angeben, ist die Methode asynchron. Andernfalls ist die Methode synchron. Weitere Informationen zum Festlegen des Rückrufzeigers finden Sie unter MF_SOURCE_READER_ASYNC_CALLBACK.
Asynchrone Arbeitsweise
Im asynchronen Modus:-
[out]Alle Parameter müssen NULL sein. Andernfalls gibt die Methode E_INVALIDARG zurück. - Die Methode gibt sofort zurück.
- Nach Abschluss des Vorgangs wird die IMFSourceReaderCallback::OnReadSample-Methode der Anwendung aufgerufen.
- Wenn ein Fehler auftritt, kann die Methode entweder synchron oder asynchron fehlschlagen. Überprüfen Sie den Rückgabewert von ReadSample, und überprüfen Sie auch den hrStatus-Parameter von IMFSourceReaderCallback::OnReadSample.
Synchroner Modus
Im synchronen Modus:- Die Parameter "pdwStreamFlags " und "ppSample " dürfen nicht NULL sein. Andernfalls gibt die Methode E_POINTER zurück.
- Die Parameter pdwActualStreamIndex und pllTimestamp können NULL sein.
- Die Methode blockiert, bis das nächste Beispiel verfügbar ist.
Diese Methode kann Flags im pdwStreamFlags-Parameter zurückgeben, ohne ein Medienbeispiel in ppSample zurückzugeben. Daher kann der ppSample-Parameter auch dann einen NULL-Zeiger empfangen, wenn die Methode erfolgreich verläuft. Wenn der Quellleser beispielsweise das Ende des Datenstroms erreicht, gibt er das MF_SOURCE_READERF_ENDOFSTREAM Flag in pdwStreamFlags zurück und legt ppSample auf NULL fest.
Wenn im Datenstrom eine Lücke vorhanden ist, empfängt pdwStreamFlags das MF_SOURCE_READERF_STREAMTICK Flag, ppSample ist NULL, und pllTimestamp gibt den Zeitpunkt an, zu dem die Lücke aufgetreten ist.
Diese Schnittstelle ist unter Windows Vista verfügbar, wenn die Plattformupdate-Ergänzung für Windows Vista installiert ist.
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Ergänzung zu Windows 7, Windows Vista und Platform Update für Windows Vista [Desktop-Apps | UWP-Apps] |
| Mindestanforderungen für unterstützte Server | Windows Server 2008 R2 [Desktop-Apps | UWP-Apps] |
| Zielplattform | Fenster |
| Header | mfreadwrite.h |