IMediaControl ::StopWhenReady, méthode (control.h)

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

La StopWhenReady méthode interrompt le graphe de filtre, ce qui permet aux filtres de mettre en file d’attente les données, puis arrête le graphe de filtre.

Syntaxe

HRESULT StopWhenReady();

Valeur de retour

Retourne une valeur HRESULT . Les valeurs possibles sont les suivantes.

Code de retour Description
S_OK
Opération réussie.
S_FALSE
Le graphe était toujours en cours de transition vers l’état suspendu lorsque la méthode est retournée.

Remarques

Cette méthode est utile si vous souhaitez rechercher le graphe de filtre pendant l’arrêt du graphe. Tant que le graphe de filtre est arrêté, les modifications de la position actuelle ne repeint pas la fenêtre vidéo avec une nouvelle image. Par conséquent, l’appel de IMediaSeeking ::SetPositions ne met pas à jour la fenêtre vidéo. Pour mettre à jour la fenêtre après l’opération de recherche, appelez StopWhenReady. Cette méthode fait passer le graphe à un état suspendu, attend que l’opération de pause se termine, puis revient à l’arrêt du graphe. L’opération de pause met en file d’attente les données dans le graphique, de sorte que le convertisseur vidéo reçoit et affiche la nouvelle image.

Cette méthode est asynchrone. Il attend que la pause se termine sur un thread distinct. Le thread appelant ne bloque pas, ce qui permet à l’application de répondre aux entrées utilisateur. Lorsque la méthode retourne, l’état logique du graphe est arrêté, même avant la fin de l’opération de pause. Si vous appelez la méthode IMediaControl ::GetState à ce stade, elle retourne State_Stopped.

Si l’application émet une autre commande de changement d’état (telle que suspendre, exécuter ou rechercher) avant la fin de l’opération de pause, la nouvelle commande annule la commande d’arrêt en attente. L’opération de pause se termine, mais le graphique ne s’arrête pas.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête control.h (include Dshow.h)
Bibliothèque Strmiids.lib

Voir aussi

Codes d’erreur et de réussite

IMediaControl Interface