次の方法で共有


メディア イベント タイマー

多くのアプリケーションは、要求された操作の性質を判断するために、メディア イベント間のタイミング関係 (受信した DTMF 桁など) に依存します。 たとえば、ボイス メール アプリケーションでは、2 桁の連続する DTMF "1" 桁は、2 桁の数字の間の経過時間に応じて、"2 つのセグメントのバックアップ" または "メッセージの先頭からの再生" を意味する場合があります。 クライアント/サーバー環境では、アプリケーションが実行されているプロセッサとは別のプロセッサで DTMF 検出が実行されている場合、ローカル エリア ネットワークの待機時間により、メディア イベント間のタイミング関係が歪み、これらのタイミングベースの違いが失われたり、信頼性が低下したりする可能性が非常に高くなります。

この問題を解決するには、複数の TAPI メッセージにタイムスタンプを付けることができます。 重要なのはこれらのイベント間の相対的なタイミングであるため、イベントの "クロック時間" は重要ではなく、サブ秒のタイミングが関係するため、これらのタイムスタンプでは、GetTickCount 関数によって返されるミリ秒解像度の "Windows が開始されてからの時間" が使用されます。 アプリケーションは、サーバー (またはハードウェアを直接管理するサービス プロバイダーが実行されているマシン) のティック カウントであり、アプリケーションが実行されているコンピューターと必ずしも同じではないことに注意する必要があります。したがって、これらの TAPI メッセージ内のタイムスタンプは、アプリケーションが実行されているプロセッサ上の GetTickCount によって返される値ではなく、相互にのみ比較できます。

タイムスタンプを付けることができる TAPI メッセージは、LINE_GATHERDIGITSLINE_GENERATELINE_MONITORDIGITSLINE_MONITORMEDIA、および LINE_MONITORTONEです。 ティック数は、これらのメッセージ dwParam3 に挿入されます。 タイムスタンプがサービス プロバイダーでサポートされていない場合 (これらのメッセージの dwParam3 サービス プロバイダー設定で示されます)、TAPI 自体は、これらすべてのメッセージの dwParam3 にティック カウントを挿入します (メッセージがプロセス間通信スキームを通過した後にアプリケーションが同じ操作を行った場合よりも多少偏っている可能性があります)。