Autorandrですがオーディオデバイス用ですか?

Autorandrですがオーディオデバイス用ですか?

私のThinkPad T450はManjaroを実行しています。私はスクラムマスターとして、外部モニターが2つあるデスク、モニターのない会議室、外部モニターが1つある会議室の間を頻繁に移動します。autorandr使用可能なハードウェアに応じてワークスペースを自動的に設定するようにラップトップを設定しました。私はそれが大好きです!

しかし、私は同様のオーディオソリューションも好きです。デスクに入ると、入力代替デバイスはBluetooth Jabraヘッドフォンであり、出力代替デバイスは「すべてのデバイスに同時出力」疑似デバイスになりたいのですが、会議室では通常次のものを接続します。 USB(JabraまたはLogitech)会議室スピーカーデバイス - 次に、ボリュームコントロールパネルに移動してデフォルトのデバイスを設定する必要があります。

すべてを自動化できれば新しく接続されたデバイスが自動的に選択されます。バックアップI/Oとして本当に良いようです!

警告する:報酬を受け取るには、回答が有効な解決策を説明する必要があります。自動的にハードウェアが接続または切断されたとき。実行されるたびに実行されるようにスクリプトをトリガーすることは許可されますautorandr(ただし、autorandr独自のスリープストリーム機能はありません)。

ボリュームコントロールパネル

編集する:@telcoMの回答に触発され、現在システムに認識されているソースとシンクのリストを含めることができます(現在接続されていない会議室のソースとシンクのリストを含む)。

$ pactl list | grep -B 2 'ame:' | grep -A 2 'Sink #'
Sink #0
    State: SUSPENDED
    Name: alsa_output.pci-0000_00_1b.0.analog-stereo
--
Sink #1
    State: SUSPENDED
    Name: combined
--
Sink #43
    State: SUSPENDED
    Name: alsa_output.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono
--
Sink #93
    State: SUSPENDED
    Name: alsa_output.pci-0000_00_03.0.hdmi-stereo-extra1

そして

$ pactl list | grep -B 2 'ame:' | grep -A 2 'Source #'
Source #0
    State: SUSPENDED
    Name: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
--
Source #1
    State: SUSPENDED
    Name: alsa_input.pci-0000_00_1b.0.analog-stereo
--
Source #2
    State: SUSPENDED
    Name: combined.monitor
--
Source #46
    State: SUSPENDED
    Name: alsa_output.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono.monitor
--
Source #47
    State: SUSPENDED
    Name: alsa_input.usb-GN_Netcom_A_S_Jabra_PRO_9470_026D0D98A805-00.analog-mono
--
Source #97
    State: SUSPENDED
    Name: alsa_output.pci-0000_00_03.0.hdmi-stereo-extra1.monitor

ベストアンサー1

デフォルトでは、Pulseaudioは各再生ソースが接続されている出力デバイスを記憶し、入力デバイスと録音ソフトウェアも同様です。これは、もともとPulseaudioデバイス接続の主なソースです。

代替デバイスは、たとえば、再生ソースに以前に接続されたレコードがない場合、または以前に接続されたデバイスが使用できなくなった場合にのみ使用されます。

少なくともKDEには、オーディオ入力/出力デバイスの各オーディオ入力/出力タイプ(通信対オーディオまたはビデオの再生/録音)の優先順位を個別に設定するために使用できるマルチメディア設定ダイアログボックスがあります。これはPulseaudioの動作を変えるようです。

このブログと言及されたpaswitchユーティリティはあなたに役立ちます。

https://www.tablix.org/~avian/blog/archives/2012/06/switching_pulseaudio_output_device/

Gitリポジトリpaswitch:https://www.tablix.org/~avian/git/paswitch.git

以前はこの目的のためのスクリプトがありましたpaswitchが、デフォルト/代替出力を切り替えるだけでなく、アクティブソースと以前に記憶されたソースを新しい出力に切り替えるので、より良い方法です。残念ながら、出力側のみを処理します。

特定のマイクを使用して起動されたアクティブクライアントを切り替えるには、次の手順を実行する必要があります。

pacmd set-default-source "$SOURCEID"
if ! pacmd list-source-outputs | head -1 | grep -q "^0 source output"
then
    # active input clients, switch them to new mic
    for idx in $(pacmd list-source-outputs | awk '/index:/{print $2;}')
    do
        # sources include monitor sources that cannot be moved
        pacmd move-source-output $idx $SOURCEID >/dev/null
    done
fi

これにより、最初にデフォルトのマイクが指定されたマイクロに変更され、次にすべてのアクティブ$SOURCEIDなアプリケーションが対応する新しいマイクロに移動されます。

ただし、他のオーディオソースデバイスを使用する前にアプリケーションが実行されていて、そのソースがシステムでまだ利用可能な場合、Pulseaudioは永続機能がオフになっていない限り、デフォルトでは新しいデフォルトソースの代わりに古いソースに接続します。

おすすめ記事