Méthode IMFMediaSink::SetPresentationClock (mfidl.h)
Définit l’horloge de présentation sur le récepteur multimédia.
Syntaxe
HRESULT SetPresentationClock(
[in] IMFPresentationClock *pPresentationClock
);
Paramètres
[in] pPresentationClock
Pointeur vers l’interface IMFPresentationClock de l’horloge de présentation, ou NULL. Si la valeur est NULL, le récepteur multimédia cesse d’écouter l’horloge de présentation précédemment définie, le cas échéant.
Valeur retournée
Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.
Code de retour | Description |
---|---|
|
S_OK |
|
L’horloge de présentation n’a pas de source de temps. Appelez SetTimeSource sur l’horloge de la présentation. |
|
La méthode Shutdown du récepteur multimédia a été appelée. |
Notes
Pendant la diffusion en continu, le récepteur multimédia tente de faire correspondre les taux à l’horloge de présentation. Dans l’idéal, le récepteur multimédia présente des échantillons au bon moment en fonction de l’horloge de présentation et ne prend pas de retard. Les récepteurs multimédias sans débit constituent une exception à cette règle, car ils consomment des échantillons aussi rapidement que possible et ignorent l’horloge. Si le récepteur est sans taux, la méthode IMFMediaSink::GetCharacteristics retourne l’indicateur MEDIASINK_RATELESS.
L’horloge de présentation doit avoir une source de temps. Avant d’appeler cette méthode, appelez IMFPresentationClock::SetTimeSource sur l’horloge de présentation pour définir la source de l’heure de présentation. Certains récepteurs multimédias fournissent des sources de temps ; par conséquent, le récepteur multimédia peut être la source de temps pour sa propre horloge de présentation. Quel que soit l’objet qui fournit la source de temps, toutefois, le récepteur de média doit tenter de faire correspondre les taux à l’horloge spécifiée dans pPresentationClock. Si un récepteur multimédia ne peut pas faire correspondre les taux à une source de temps externe, la méthode IMFMediaSink::GetCharacteristics du récepteur multimédia récupère l’indicateur MEDIASINK_CANNOT_MATCH_CLOCK. Dans ce cas, SetPresentationClock réussit toujours, mais les résultats ne sont pas optimaux. Le récepteur peut ne pas afficher les échantillons assez rapidement pour faire correspondre les taux à l’horloge de présentation.
Si pPresentationClock n’a pas la valeur NULL, le récepteur multimédia doit s’inscrire pour les notifications d’état d’horloge, en appelant IMFPresentationClock::AddClockStateSink sur l’horloge de présentation. Si la méthode est appelée à nouveau avec une nouvelle horloge de présentation, ou si pPresentationClock a la valeur NULL, le récepteur multimédia doit appeler IMFPresentationClock::RemoveClockStateSink pour se désinscrire de l’horloge précédente.
Tous les récepteurs multimédias doivent prendre en charge cette méthode.
Spécifications
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | mfidl.h |
Bibliothèque | Mfuuid.lib |