コマンド一発で音声の入出力を変更できるようにした

いつもbluetoothイヤホンとMacを接続して仕事をしており、 電池がなくなったら直挿しのイヤホンに切り替えています。

そのたびに設定 > サウンドを開いてあーだこーだするのが面倒だったので 一発で変更できないかを調べたところ、switchaudio-osxを利用した記事が結構みつかったので試してみました。

インストール

Homebrewを利用してインストールします。

brew install switchaudio-os

音声出力一覧

SwitchAudioSource -aで使用可能なデバイスが一覧表示されるので、ここから使用したいものを選びます。

SOUNDPEATS TrueAir2
Capture Inactive
外部マイク
MacBook Proのマイク
SOUNDPEATS TrueAir2
DELL S2421HS
RDT231WLM
外部ヘッドフォン
MacBook Proのスピーカー

出力先を変更する

たったこれだけで

SwitchAudioSource -s 外部ヘッドフォン
=> output audio device set to "外部ヘッドフォン"

かわった! 設定 > サウンド を見ても変わっていることが確認できました。

エイリアスをはる

# sound
# !brew install switchaudio-osx!
alias sci='SwitchAudioSource -s 外部ヘッドフォン'
alias scb="SwitchAudioSource -s 'SOUNDPEATS TrueAir2'"

これでsciと叩けば外部ヘッドフォンに出力先が変わるように! scbはbluetoothに切り替える用です。

ただこれだと入力先が変わらなかったので、関数にして処理を足しました。

# sound
# !brew install switchaudio-osx!
function sci() {
    SwitchAudioSource -s 外部ヘッドフォン;
    SwitchAudioSource -t input -s 外部マイク;
}

function scb() {
    SwitchAudioSource -s 'SOUNDPEATS TrueAir2';
    SwitchAudioSource -t input -s 'SOUNDPEATS TrueAir2';
}

alias sci='sci'
alias scb='scb'

-sはデフォルトで出力先を変えるようになっているので、 入力先を変えるには -t(type) で input を指定してあげる必要がある。

$ scb
=> output audio device set to "SOUNDPEATS TrueAir2"
=> input audio device set to "SOUNDPEATS TrueAir2"

いい感じ。