私は自分のシステムでPulseAudioを使用しており、モニター装置PulseAudio wiki のとおり。モニター デバイス自体は動作し、Audacity などのアプリで適切に登録/機能しますが、コマンド ライン ツールのいずれを使用してもデバイスを表示できません。Audacityaplay -L
とほぼ同じリストを返しますが、都合よくモニター デバイスがありません。
私の最終目標は、Java アプリで出力を解析し、最終的に FFmpeg に渡すことです。2 つの汎用「キャプチャ ソース ポート」が表示されるので、Java オーディオ API を通じてデバイスが存在することはわかりますが、デバイスの名前は提供されません。目標は、ユーザーがある程度フレンドリーな方法で選択できるようにすることです。
コマンドライン アプリまたは Java API / ライブラリを通じてモニター デバイスを表示する方法はありますか?
前もって感謝します!
答え1
pacmd list-sources
またはコマンドを使用してpactl list
PulseAudioデバイスを表示します。名前のみを表示するには、出力を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