私のLinuxシステムで利用可能なすべてのオーディオデバイスのリストを取得します。次に、このリストをコンボボックスに表示して、そこからユーザーが録音/再生に使用するデバイスを選択します。ユーザーの選択に基づいて、録音/再生用にQAudioInputとQAudioOutputを作成します。Qt:Linuxで使用可能なオーディオデバイスのリストを取得します
Qtのドキュメントによると、これはQAudioDeviceInfo::availableDevices静的メソッドを使用して行うことができます。このメソッドは、システム内で使用可能なすべてのオーディオデバイスのリストを返します。
この方法を使用して、オーディオデバイスの数を一覧表示しました。私のシステムには2つのサウンドカードがインストールされているので(マザーボードに1つ、USBデバイスに1つ)、このメソッドは2つの要素だけを含むリストを返すはずです。しかし、それは23の項目を含むリストを返しました。この背後にある理由は、おそらくバックエンドで使用されているALSA APIある
default
pulse
front:CARD=Intel,DEV=0
surround40:CARD=Intel,DEV=0
surround41:CARD=Intel,DEV=0
surround50:CARD=Intel,DEV=0
surround51:CARD=Intel,DEV=0
surround71:CARD=Intel,DEV=0
dmix:CARD=Intel,DEV=0
dsnoop:CARD=Intel,DEV=0
hw:CARD=Intel,DEV=0
plughw:CARD=Intel,DEV=0
front:CARD=default,DEV=0
surround40:CARD=default,DEV=0
surround41:CARD=default,DEV=0
surround50:CARD=default,DEV=0
surround51:CARD=default,DEV=0
surround71:CARD=default,DEV=0
iec958:CARD=default,DEV=0
dmix:CARD=default,DEV=0
dsnoop:CARD=default,DEV=0
hw:CARD=default,DEV=0
plughw:CARD=default,DEV=0
- 私は自分の名前をアクセスしたとき、私は以下のようなものを得ました。 this article ALSAは、サウンドカードを複数の論理オーディオデバイスに論理的に分割します。複数の論理オーディオデバイスは、Qt APIがドライバを照会するときにフェッチされます。
ユーザーが選択できるように、これらの名前をすべてリストしたくありません。その後、
が、これはQtのを使用して行うことができますどのような方法があります。..彼らの希望のサウンドカードを選択しますどのユーザから
HDA-Intel
USB-Audio
- 私のようなものをリストアップしたいですか?もしそうでなければ、私は本当にここで何が他の選択肢が使用できるのか知りたいです。
このコマンドは、使用可能なオーディオデバイスを適切に返します(Windows 7でテスト済み)。 Qtのマルチメディアは、ALSA for Linuxの下にあるオーディオドライバに依存しています。 ALSAは、これらの複数のデバイスすべてでサウンドカードを分割するので、Qtはそれらを取り出して表示しています。とにかく、ここでの回避策は、ALSAを直接使用するか、PulseAudioやJackなどのサウンドサーバーを使用することです(私はPulseAudioを選択しました)。 –