シェルを使用して他のオーディオ出力ハードウェアを切り替えるには?

シェルを使用して他のオーディオ出力ハードウェアを切り替えるには?

私はスピーカー付きの外部モニターと一緒にラップトップを使います。モニターがHDMI経由で接続されると、通常のノートブックオーディオ出力とモニター出力を切り替えることができます(GUI:サウンド設定 - >ハードウェアを使用)。

私はこのプロセスを何度も繰り返し、それを自動化できるのか、とにかくシェルを使ってより速い方法で実行できるのか疑問に思い始めました。

私のディストリビューションはgnome 3を含むUbuntu 12.04です。

編集する:

pacmdを試しましたが、list-sinkは現在使用中のデバイスのみを提供します。

pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_1b.0.hdmi-stereo>

GUIから切り替えた後:

pacmd list-sinks | grep name:
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>

変更しようとすると、次の結果が表示されます。

pacmd set-default-sink alsa_output.pci-0000_00_1b.0.hdmi-stereo
Welcome to PulseAudio! Use "help" for usage information.
Sink alsa_output.pci-0000_00_1b.0.hdmi-stereo does not exist.

ベストアンサー1

この場合、カードは常に同じです。あるスイッチから別のスイッチに変更されるのは「カードプロファイル」です。

したがって、動作する実際の解決策は次のとおりです。

pacmd set-card-profile <cardindex> <profilename>

私の場合は、すべてのカードプロファイルを見つけました。

pacmd list-cards

以下を使用して、モニターとノートブックスピーカーを切り替えることができます。

pacmd set-card-profile 0 output:hdmi-stereo

そして:

pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo

ここで、0 はカードのインデックスです。

pacmd list-cards
Welcome to PulseAudio! Use "help" for usage information.
>>> 1 card(s) available.
    index: 0
    name: <alsa_card.pci-0000_00_1b.0>

最後に、より速く切り替えるために、.bashrcファイルに2つのエイリアスを設定しました。

alias audio-hdmi='pacmd set-card-profile 0 output:hdmi-stereo+input:analog-stereo'
alias audio-laptop='pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo'

これにより、シェルにaudio-hdmiまたはaudio-laptopと入力して、モニターまたはラップトップ(ヘッドフォン)のオーディオを切り替えることができます。

おすすめ記事