すべてのALSAデバイスを一覧表示する

すべてのALSAデバイスを一覧表示する

私は自分のシステムでPulseAudioを使用しており、モニター装置PulseAudio wiki のとおり。モニター デバイス自体は動作し、Audacity などのアプリで適切に登録/機能しますが、コマンド ライン ツールのいずれを使用してもデバイスを表示できません。Audacityaplay -Lとほぼ同じリストを返しますが、都合よくモニター デバイスがありません。

私の最終目標は、Java アプリで出力を解析し、最終的に FFmpeg に渡すことです。2 つの汎用「キャプチャ ソース ポート」が表示されるので、Java オーディオ API を通じてデバイスが存在することはわかりますが、デバイスの名前は提供されません。目標は、ユーザーがある程度フレンドリーな方法で選択できるようにすることです。

コマンドライン アプリまたは Java API / ライブラリを通じてモニター デバイスを表示する方法はありますか?

前もって感謝します!

答え1

pacmd list-sourcesまたはコマンドを使用してpactl listPulseAudioデバイスを表示します。名前のみを表示するには、出力をgrepします。これは、PulseAudio よくある質問

$ LANG=C pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2

「.monitor」をさらにgrepすると、モニターデバイスのみを取得できます。

答え2

つまり、問題は pulseaudio レベルではなく alsa レベルにあるようです。alsa デバイスを確認したい場合は、以下を試してください。

aplay -l

(ただし、すでに述べた aplay -L も同様です)。

pulseaudio は alsa の上にあります。したがって、pactl を見ると、別のソフトウェア レイヤーが取り込まれます... ここを参照してください。troubleshooters.com/linux/sound/sound_troubleshooting.htm。alsa がサウンド デバイスを認識できないのであれば、pulseaudio も認識できないのは当然です。

答え3

それは非常に単純です:

シンク/出力ポートが表示されます。

aplay -L

「モニター」はソース/入力ポートなので、次のものが必要になります。

arecord -L

更新: aplay と arecord は 'alsa-utils' パッケージに含まれています。インストールするには:

sudo apt install alsa-utils

関連情報