Microsoft DirectX 8.0 (Visual Basic)

サウンド デバイスの列挙

ユーザーが好む再生装置で単純にサウンドを再生するだけのアプリケーションでは、利用可能なデバイスを列挙する必要はない。DirectX8.DirectSoundCreate 関数を呼び出して DirectSound8 オブジェクトを作成する場合、デフォルトのデバイスを指定できる。詳細については、「DirectSound オブジェクトの作成」を参照すること。

特定の種類のデバイスを探している場合や、ユーザーにデバイスを選択させる場合、複数のデバイスを使って動作する必要がある場合は、システム上で利用可能なデバイスを列挙しなければならない。

列挙は 3 つの目的で使われる。

デバイスを列挙するには、まず DirectX8.GetDSEnum メソッドを呼び出す必要がある。このメソッドは、DirectSound に対応したデバイスのコレクションを含む DirectSoundEnum8 オブジェクトを作成する。利用可能なデバイス数を決定するには、DirectSoundEnum8.GetCount メソッドを呼び出す。各デバイスの情報は、DirectSoundEnum8.GetDescriptionDirectSoundEnum8.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 と共に列挙される。