おっしゃるとおり、オーディオ カードのデバイス番号は実行ごとに変わります。QJackCtrl で正しいデバイスを選択するようにしてください。aplay -l
スクリプトを使用して処理できるように、使用可能なデバイスを一覧表示する必要があります。
2 番目の質問に答えるために、Pulse サウンドのハンドラーとして Jack を使用できるようにする PulseAudio モジュールがあります。pulseaudio-module-jack
Ubuntu/Debian を見てください (お使いのディストリビューションで利用できる場合があります。これは Debian ベースのシステムでの方法についてのみ言及しており、Ubuntu を実行しているため、他のものをすぐに確認することはできません)。私の場合、それが機能するためには、Ubuntuサウンド設定でもそれを選択する必要がありました(私が知る限り)。Pulse と Jack を一緒に使用する方法については、 http://jackaudio.org/pulseaudio_and_jackを参照してください。
また、乱雑な Bash スクリプトの無料ボーナス スニペット:
get_alsa_device ()
{
# USAGE:
# In Bash:
# var="$(get_alsa_device "card_name" "device_name")"
# DESCRIPTION:
# Parses aplay's output to find the device specified by card and device
# ARGUMENTS:
# card_name The name of the card to be found
# device_name The name of the device to be found
# STDOUT:
# Writes the proper alsa device name (in hd0,0 style) to stdout
# RETURN VALUE:
# 0 Succeeded in generating output value
# 1 Failed to generate output value
aplay --list-devices | grep --fixed-strings "$1" | grep --fixed-strings --max-count 1 "$2" | sed -r 's/^card ([0-9]{1,}): .*, device ([0-9]{1,}): .*$/hw:\1,\2/; T die; q 0; :die; Q 1'
}
これは私が作成したツールからのもので、Jack を自動的に設定して、ユーザーが希望するカードを実行できるようにします。この関数は、提供された名前に一致する ALSA デバイスを見つけて、その名前を Jack スタイルで返します (私はかなり確信しています...)。