Skip to main content

list_devices

Function list_devices 

Source
pub fn list_devices() -> Result<Vec<DeviceInfo>>
Expand description

入力(マイク)デバイスを列挙する。devices() のマイク分。

host.input_devices() を走査し各デバイスを DeviceInfo へ写す:

  • id / name: cpal は永続 ID を持たないので device name を ID 代わりに両方へ 入れる(再接続で index が変わるため。同一構成なら同じ name)。
  • sample_rate / channels: default_input_config() から。取れない(実際には 開けない等)デバイスはスキップ。
  • source_kind = Mic / is_loopback = false
  • is_default: host.default_input_device() の name と一致すれば true

デバイスが無い/ホスト初期化失敗の環境では空 Vec(panic しない)。同名デバイス が複数あると id が重複し得るが、cpal でこれ以上安定なキーは取れないので許容する。