Microsoft DirectX 8.0 (Visual Basic) |
ユーザーが好む再生装置で単純にサウンドを再生するだけのアプリケーションでは、利用可能なデバイスを列挙する必要はない。DirectX8.DirectSoundCreate 関数を呼び出して DirectSound8 オブジェクトを作成する場合、デフォルトのデバイスを指定できる。詳細については、「DirectSound オブジェクトの作成」を参照すること。
特定の種類のデバイスを探している場合や、ユーザーにデバイスを選択させる場合、複数のデバイスを使って動作する必要がある場合は、システム上で利用可能なデバイスを列挙しなければならない。
列挙は 3 つの目的で使われる。
デバイスを列挙するには、まず DirectX8.GetDSEnum メソッドを呼び出す必要がある。このメソッドは、DirectSound に対応したデバイスのコレクションを含む DirectSoundEnum8 オブジェクトを作成する。利用可能なデバイス数を決定するには、DirectSoundEnum8.GetCount メソッドを呼び出す。各デバイスの情報は、DirectSoundEnum8.GetDescription、DirectSoundEnum8.GetGuid、および DirectSoundEnum8.GetName の各メソッドから返される。これらのメソッドはそれぞれパラメータとしてコレクション内のデバイスのインデックスを取る。
次のサンプル アプリケーションは、各サウンド デバイスの説明を出力する。
Dim dx As New DirectX8 Dim dsenum As DirectSoundEnum8 Private Sub Form_Load() Set dsenum = dx.GetDSEnum For x = 1 To dsenum.GetCount Debug.Print dsenum.GetDescription(x), " ", Next x End Sub
注 列挙された最初のデバイスは常に "プライマリ サウンド ドライバ" と呼ばれ、GUID はすべて 0 である。このデバイスは、ユーザーがコントロール パネルで設定した優先する再生デバイスを表す。アプリケーションが "プライマリ サウンド ドライバ" を一覧に追加して、ユーザーにデバイスの選択肢を提供しやすくするために、このデバイスは別に列挙される。プライマリ デバイスは、適切な名前および GUID と共に列挙される。