PulseAudio受信機をグループに設定するには?

PulseAudio受信機をグループに設定するには?

複数のアクティブ入力ストリームのシンクを変更できるように、ある種の仮想シンクまたはソースグループを設定したいと思います。これまで、私はすべての入力ストリームをデフォルトソースに設定するために次のスクリプトを使用してきました。

#!/bin/bash
pacmd set-default-sink "$1"
pacmd list-sink-inputs | grep index | while read input
do
  pacmd move-sink-input "${input##* }" "$1"
done

または、入力を最後のデフォルト受信機に移動します。

#!/bin/bash
pacmd list-sinks |
grep -e "* index:" |
tr -dc "[:digit:]\n" |
{
  read old_sink
  pacmd set-default-sink "$1"
  pacmd list-sink-inputs  |
  grep -e "index:" -e "sink:" |
  grep -B 1 -e "sink: $old_sink" |
  grep -e "index:" |
  tr -dc "[:digit:]\n" |
  while read i
  do
    pacmd move-sink-input "$i" "$1"
  done
}

しかし、これは私のニーズに合いません。同様の解決策 1つのターゲットシンクを指すすべての入力ストリームが別のターゲットシンクに移動したいとします。次の動作を提供するソリューションが必要です。

# previous state
sourceA -> (virtualSink -> sinkA)
sourceB -> (virtualSink -> sinkA)
sourceC -> sinkA

$ set-sink (virtualSink -> sinkB)
sourceA -> (virtualSink -> sinkB)
sourceB -> (virtualSink -> sinkB)
sourceC -> sinkA

理想的には、set-sinkすべてのアクティブ入力ストリームが新しいシンクに移動されますが、指定された入力ストリームを繰り返すことはvirtualSink完全に許可されます。

ベストアンサー1

おすすめ記事