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
}

그러나 이것은 내 요구에 맞지 않습니다. 유사한 솔루션 하나의 대상 싱크를 가리키는 모든 입력 스트림이 다른 대상 싱크로 이동하기를 원한다고 가정해 보겠습니다. 다음 동작을 제공하는 솔루션을 원합니다.

# 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완벽하게 허용됩니다.

관련 정보