次の方法で共有


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

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

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

タイムスタンプ付けできる TAPI メッセージは、 LINE_GATHERDIGITSLINE_GENERATELINE_MONITORDIGITSLINE_MONITORMEDIALINE_MONITORTONEです。 ティック数は、これらのメッセージの dwParam3 に挿入されます。 タイムスタンプがサービス プロバイダーでサポートされていない場合 (これらのメッセージの dwParam3 を 0 に設定したサービス プロバイダーによって示されます)、TAPI 自体はこれらすべてのメッセージの dwParam3 にティック 数を挿入します (メッセージがプロセス間通信スキームを走査した後にアプリケーションが同じ処理を行った場合よりも少なくなります)。