Partager via


Minuteurs d’événements multimédias

De nombreuses applications dépendent de la relation de minutage entre les événements multimédias (par exemple, les chiffres DTMF reçus) pour déterminer la nature d’une opération demandée. Par exemple, dans une application de messagerie vocale, deux chiffres DTMF consécutifs « 1 » peuvent signifier « sauvegarder deux segments » ou « relire à partir du début du message », selon le temps écoulé entre les deux chiffres. Dans un environnement client/serveur, si la détection DTMF est effectuée sur un processeur distinct de celui sur lequel l’application s’exécute, la latence dans le réseau local rend très probable que la relation de minutage entre les événements multimédias sera asymétrique, ce qui entraîne la perte ou la fiabilité de ces différences temporelles.

Pour résoudre ce problème, plusieurs messages TAPI peuvent être horodatés. Étant donné qu’il s’agit du minutage relatif entre ces événements qui est important, l'« heure de l’horloge » de l’événement n’est pas importante et le minutage de sous-seconde est impliqué, ces horodatages utilisent le temps de résolution en millisecondes depuis le démarrage de Windows retourné par la fonction GetTickCount. Les applications doivent savoir qu’il s’agit du nombre de graduations sur le serveur (ou de l’ordinateur sur lequel le fournisseur de services gère directement le matériel en cours d’exécution), et n’est pas nécessairement la même machine sur laquelle l’application s’exécute ; Ainsi, les horodatages dans ces messages TAPI ne peuvent être comparés qu’entre eux, et non à la valeur retournée par GetTickCount sur le processeur sur lequel l’application s’exécute.

Les messages TAPI qui peuvent être horodatés sont : LINE_GATHERDIGITS, LINE_GENERATE, LINE_MONITORDIGITS, LINE_MONITORMEDIAet LINE_MONITORTONE. Le nombre de graduations est inséré dans dwParam3 de ces messages. Si l’horodatage n’est pas pris en charge par le fournisseur de services (indiqué par le paramètre du fournisseur de services dwParam3 dans ces messages à 0), TAPI lui-même insère le nombre de graduations dans dwParam3 de tous ces messages (il peut être légèrement asymétrique, mais inférieur à si l’application a effectué la même opération après que les messages ont traversé un schéma de communication interprocessus).