列出所有 ALSA 設備

列出所有 ALSA 設備

我在我的系統上使用 PulseAudio,並按照說明添加監控裝置根據 PulseAudio wiki。監視器設備本身可以在 Audacity 等應用程式中正常工作並註冊/運行,但我無法透過任何命令列工具讓設備顯示自己。aplay -L傳回與 Audacity 大致相同的列表,但很方便地缺少監視器設備。

我的最終目標是解析 Java 應用程式中的輸出並最終將其傳遞給 FFmpeg。當出現 2 個通用「擷取來源連接埠」時,我可以透過 Java 音訊 API 判斷該裝置存在,但它沒有提供裝置的名稱,目標是讓使用者可以在有點友善的態度。

有沒有什麼方法可以讓監視器設備顯示在命令列應用程式或透過 Java API/庫中?

先致謝!

答案1

使用pacmd list-sourcespactl list命令顯示 PulseAudio 設備。若要僅顯示名稱,您可以對其輸出進行 grep 操作。這是一個例子脈衝音頻常見問題解答

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

透過在「.monitor」上附加 grep,您只能取得監視裝置。

答案2

簡而言之,問題似乎出在 alsa 級別,而不是pulseaudio 級別?如果你想查看 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

相關內容