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 « 1 » consécutifs 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 la relation de minutage entre les événements multimédias, ce qui peut entraîner la perte ou la fiabilité de ces différences basées sur le minutage.

Pour résoudre ce problème, plusieurs messages TAPI peuvent être horodatés. Étant donné que c’est le minutage relatif entre ces événements qui est important, que le « temps d’horloge » de l’événement n’est pas important et que le minutage en moins de seconde est impliqué, ces horodatages utilisent la résolution en millisecondes « time since Windows started » retournée par la fonction GetTickCount . Les applications doivent savoir qu’il s’agit du nombre de cycles sur le serveur (ou l’ordinateur sur lequel le fournisseur de services qui gère directement le matériel est en cours d’exécution) et qu’il ne s’agit pas nécessairement de la même machine que celle sur laquelle l’application s’exécute . Ainsi, les horodatages de 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 les suivants : LINE_GATHERDIGITS, LINE_GENERATE, LINE_MONITORDIGITS, LINE_MONITORMEDIA et 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 (ce qui est indiqué par le fournisseur de services définissant dwParam3 dans ces messages sur 0), TAPI lui-même insère le nombre de graduations dans dwParam3 de tous ces messages (il peut être légèrement biaisé, mais moins que si l’application a fait la même chose après que les messages ont traversé un schéma de communication interprocessus).