Freigeben über


Medienereignistimer

Viele Anwendungen hängen von der Zeitlichen Beziehung zwischen Medienereignissen (z. B. empfangene DTMF-Ziffern) ab, um die Art eines angeforderten Vorgangs zu bestimmen. In einer Voicemailanwendung können beispielsweise zwei aufeinanderfolgende DTMF-Ziffern "1" "Sichern von zwei Segmenten" oder "Wiedergabe vom Anfang der Nachricht" bedeuten, je nachdem, wie viel Zeit zwischen den beiden Ziffern verstrichen ist. Wenn die DTMF-Erkennung in einer Client-/Server-Umgebung auf einem anderen Prozessor als dem, auf dem die Anwendung ausgeführt wird, ausgeführt wird, ist die Latenz im lokalen Netzwerk sehr wahrscheinlich, dass die Zeitlichkeitsbeziehung zwischen Medienereignissen verzerrt wird, sodass diese zeitlichen Unterschiede verloren gehen oder unzuverlässig werden können.

Um dieses Problem zu beheben, können mehrere TAPI-Nachrichten zeitstempelt werden. Da es sich um das relative Timing zwischen diesen Ereignissen handelt, die "Uhrzeit" des Ereignisses nicht wichtig ist, und die Zeitsteuerung unter Einer Sekunde involviert ist, verwenden diese Zeitstempel die Millisekundenauflösung "Time since Windows started", die von der GetTickCount-Funktion zurückgegeben wird. Anwendungen müssen sich bewusst sein, dass dies die Tickanzahl auf dem Server (oder auf dem Computer ist, auf dem der Dienstanbieter, der die Hardware direkt verwaltet), ausgeführt wird, und nicht unbedingt derselbe Computer ist, auf dem die Anwendung ausgeführt wird; Daher können die Zeitstempel in diesen TAPI-Nachrichten nur miteinander und nicht mit dem Wert verglichen werden, der von GetTickCount auf dem Prozessor zurückgegeben wird, auf dem die Anwendung ausgeführt wird.

Die TAPI-Nachrichten, die zeitstempelt werden können, sind : LINE_GATHERDIGITS, LINE_GENERATE, LINE_MONITORDIGITS, LINE_MONITORMEDIA und LINE_MONITORTONE. Die Tickanzahl wird in dwParam3 dieser Nachrichten eingefügt. Wenn der Zeitstempel vom Dienstanbieter nicht unterstützt wird (was durch den Dienstanbieter angegeben wird, der dwParam3 in diesen Nachrichten auf 0 festlegt), fügt TAPI selbst die Häkchenanzahl all dieser Nachrichten in dwParam3 ein (es kann etwas verzerrt werden, aber kleiner als, wenn die Anwendung dasselbe getan hat, nachdem die Nachrichten ein Interprozesskommunikationsschema durchlaufen hatten).