Platform SDK: DirectX |
遅延時間とは、ポートがミュージック メッセージを受け取ってから、演奏すべき十分なウェーブが合成されるまでの遅延時間を意味する。IDirectMusicPerformance::GetLatencyTime メソッドは、現在のタイムにパフォーマンスの遅延時間を加算した全体の時間を取り出す。この値は、ポートの遅延時間クロックによって返される最大の値である。
バンパーとは、音楽イベントがポート バッファに置かれてから、ポートがそのイベントの処理を開始するタイムまでの、コードを実行するために割り当てられた時間である。デフォルトでは、バンパーの長さは 50 ミリ秒 (ms) である。アプリケーションは、IDirectMusicPerformance::SetBumperLength メソッドを使ってこの値を変更し、IDirectMusicPerformance::GetBumperLength を呼び出して現在の値を取得できる。
遅延時間とバンパー時間は結合される場合がある。あるイベントが 10,000 ミリ秒の時点で演奏されると仮定する。このポートの遅延時間は 100 ミリ秒であること、およびバンパー時間の長さはデフォルトの 50 ミリ秒であることがわかっている。そのため、パフォーマンスは 9,850 ミリ秒の時点でこのメッセージをポート バッファに置く。
ポート バッファに置かれたメッセージは、もはやパフォーマンスに所属していないため、IDirectMusicPerformance::Invalidate または IDirectMusicPerformance::Stop メソッドを使っても、演奏を止められない点に注意すること。無効にできる最初のメッセージは、現在のタイムに遅延時間とバンパー時間を加えたタイムと同じか、それ以降のタイム スタンプを持つ。IDirectMusicPerformance::GetQueueTime メソッドを使うと、この値を取得することができる。
遅延時間とは、ポートがミュージック メッセージを受け取ってから、演奏すべき十分なウェーブが合成されるまでの遅延時間を意味する。DirectMusicPerformance.GetLatencyTime メソッドは、現在のタイムにパフォーマンスの遅延時間を加算した全体の時間を取り出す。この値は、ポートの遅延時間クロックによって返される最大の値である。
バンパーとは、音楽イベントがポート バッファに置かれてから、ポートがそのイベントの処理を開始するタイムまでの、コードを実行するために割り当てられた時間である。デフォルトでは、バンパーの長さは 50 ミリ秒 (ms) である。アプリケーションは、DirectMusicPerformance.SetBumperLength メソッドを使ってこの値を変更したり、DirectMusicPerformance.GetBumperLength を呼び出して現在の値を取得することができる。
遅延時間とバンパー時間は結合される場合がある。あるイベントが 10,000 ミリ秒の時点で演奏されると仮定する。このポートの遅延時間は 100 ミリ秒であること、およびバンパー時間の長さはデフォルトの 50 ミリ秒であることがわかっている。そのため、パフォーマンスは 9,850 ミリ秒の時点でこのメッセージをポート バッファに置く。
ポート バッファに置かれたメッセージは、もはやパフォーマンスに所属していないため、DirectMusicPerformance.Invalidate または DirectMusicPerformance.Stop メソッドを使っても、演奏を止められない点に注意すること。無効にできる最初のメッセージは、現在のタイムに遅延時間とバンパー時間を加えたタイムと同じか、それ以降のタイム スタンプを持つ。DirectMusicPerformance.GetQueueTime メソッドを使うと、この値を取得することができる。
次の図は、さまざまなメソッドで取得される、タイムと継続時間の関係を示している。現在のタイムは左側に示されている。右側が、メッセージの準備が完了する最終タイムである。準備時間はいつでも、キューにあるメッセージの合計の長さの近似である。
図に示すメソッドは C++ API のものであるが、DirectX for Visual Basic でもほとんど同じ名前が使用されている。たとえば、IDirectMusicPerformance::GetPrepareTime は DirectMusicPerformance.GetPrepareTime と等価であり、図の GetTime メソッドは DirectMusicPerformance.GetClockTime と等価である。