Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lit l’exemple suivant à partir de la source multimédia.
Syntaxe
HRESULT ReadSample(
[in] DWORD dwStreamIndex,
[in] DWORD dwControlFlags,
[out] DWORD *pdwActualStreamIndex,
[out] DWORD *pdwStreamFlags,
[out] LONGLONG *pllTimestamp,
[out] IMFSample **ppSample
);
Paramètres
[in] dwStreamIndex
Flux à partir duquel extraire des données. La valeur peut être l’une des valeurs suivantes.
[in] dwControlFlags
Or au niveau du bit de zéro ou plusieurs indicateurs de l’énumération MF_SOURCE_READER_CONTROL_FLAG .
[out] pdwActualStreamIndex
Reçoit l’index de base zéro du flux.
[out] pdwStreamFlags
Reçoit un OR au niveau du bit de zéro ou plusieurs indicateurs de l’énumération MF_SOURCE_READER_FLAG .
[out] pllTimestamp
Reçoit l’horodatage de l’exemple, ou l’heure de l’événement de flux indiqué dans pdwStreamFlags. Le temps est donné en unités de 100 nanosecondes.
[out] ppSample
Reçoit un pointeur vers l’interface IMFSample ou la valeur NULL (voir Remarques). Si ce paramètre reçoit un pointeur non NULL , l’appelant doit libérer l’interface.
Valeur retournée
La méthode retourne un HRESULT. Les valeurs possibles incluent, mais ne sont pas limitées à celles du tableau suivant.
| Code de retour | Descriptif |
|---|---|
|
S_OK |
|
Demande non valide. |
|
Le paramètre dwStreamIndex n’est pas valide. |
|
Une opération de vidage est en attente. Voir IMFSourceReader ::Flush. |
|
Argument non valide. Voir les remarques. |
Remarques
Si le flux demandé n’est pas sélectionné, le code de retour est MF_E_INVALIDREQUEST. Voir IMFSourceReader ::SetStreamSelection.
Cette méthode peut se terminer de manière synchrone ou asynchrone. Si vous fournissez un pointeur de rappel lorsque vous créez le lecteur source, la méthode est asynchrone. Sinon, la méthode est synchrone. Pour plus d’informations sur la définition du pointeur de rappel, consultez MF_SOURCE_READER_ASYNC_CALLBACK.
Mode asynchrone
En mode asynchrone :- Tous les
[out]paramètres doivent être NULL. Sinon, la méthode retourne E_INVALIDARG. - La méthode retourne immédiatement.
- Une fois l’opération terminée, la méthode IMFSourceReaderCallback ::OnReadSample de l’application est appelée.
- Si une erreur se produit, la méthode peut échouer de façon synchrone ou asynchrone. Vérifiez la valeur de retour de ReadSample et vérifiez également le paramètre hrStatus de IMFSourceReaderCallback ::OnReadSample.
Mode synchrone
En mode synchrone :- Les paramètres pdwStreamFlags et ppSample ne peuvent pas être NULL. Sinon, la méthode retourne E_POINTER.
- Les paramètres pdwActualStreamIndex et pllTimestamp peuvent être NULL.
- La méthode bloque jusqu’à ce que l’exemple suivant soit disponible.
Cette méthode peut retourner des indicateurs dans le paramètre pdwStreamFlags sans retourner un exemple de média dans ppSample. Par conséquent, le paramètre ppSample peut recevoir un pointeur NULL même lorsque la méthode réussit. Par exemple, lorsque le lecteur source atteint la fin du flux, il retourne l’indicateur MF_SOURCE_READERF_ENDOFSTREAM dans pdwStreamFlags et définit ppSample sur NULL.
En cas d’écart dans le flux, pdwStreamFlags reçoit l’indicateur MF_SOURCE_READERF_STREAMTICK, ppSample a la valeur NULL et pllTimestamp indique l’heure à laquelle l’écart s’est produit.
Cette interface est disponible sur Windows Vista si le supplément de mise à jour de plateforme pour Windows Vista est installé.
Spécifications
| Requirement | Valeur |
|---|---|
| Client minimum requis | Supplément Windows 7, Windows Vista et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP] |
| Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau | Applications UWP] |
| plateforme cible | Fenêtres |
| Header | mfreadwrite.h |