[Mac] サウンド出力をコマンドラインで切り替える方法。
僕は普段はスピーカーから音声を出力させているのですが猫が静かに寝ている時などは音声出力をヘッドフォンにしたりします。Skypeで通話するときもスピーカーにしておくとハウリングしてしまうのでヘッドフォンに切り替えます。音楽を聞きたい時もヘッドフォンを使うことが多いです。というわけで結構ちょくちょくスピーカーにしたりヘッドフォンにしたりMacのサウンド出力を切り替えます。
しかしこれが結構面倒でMacのサウンド出力の切り替えは毎回システム環境設定を開く必要があります。さすがにちょっと面倒なのでコマンドで簡単に切り替える方法を紹介します。システム環境設定を開く手間が無くなるので地味に便利です。コマンドが大変な方はアプリを使う方法もあります。
目次
Alfredユーザーの方は
アプリもあります
MacAppStoreに有料ですが音声入出力切り替えのアプリがありました。メニューバーで切り替えができる模様。
コマンドラインでパッと切り替え
上記の様にいくつか方法はありますが今回はコマンドラインで切り替える方法をご紹介します。設定してしまえばひとつコマンドを打つだけなので素早く変更できます。僕の場合は<f12>を押すと常時起動のiTermがバイザーで開くので、そこでswHまで打つと後はzshの補完で選択するだけです。
インストール方法
brew install switchaudio-osxでインストールします。
<span style="color: #ee7621;"># </span><span style="color: #cd661d;">インストール </span>% brew install switchaudio-osx ==> Downloading <a href="https://homebrew.bintray.com/bottles/switchaudio-osx-1.0.0.el_capitan.bottle.1.tar.gz">https://homebrew.bintray.com/bottles/switchaudio-osx-1.0.0.el_capitan.bottle.1.tar.gz</a> <span style="color: #ee7621;">######################################################################## </span><span style="color: #cd661d;">100.0% </span>==> Pouring switchaudio-osx-1.0.0.el_capitan.bottle.1.tar.gz 🍺 /usr/local/Cellar/switchaudio-osx/1.0.0: 7 files, 73.5K <span style="color: #ee7621;"># </span><span style="color: #cd661d;">インストール先確認 </span>% which SwitchAudioSource /usr/local/bin/SwitchAudioSource <span style="color: #ee7621;"># </span><span style="color: #cd661d;">コマンド一覧 </span>% SwitchAudioSource -h Usage: /usr/local/Cellar/switchaudio-osx/1.0.0/SwitchAudioSource [-a] [-c] [-t type] [-n] -s device_name -a : shows all devices -c : shows current device -t type : device type (input/output/system). Defaults to output. -n : cycles the audio device to the next one -s device_name : sets the audio device to the given device by name
使い方
コマンド SwitchAudioSource を -a オプションを付けて実行するとMacに繋がっているオーディオデバイスが表示されます。
<span style="color: #ee7621;"># </span><span style="color: #cd661d;">デバイス確認 </span>% SwitchAudioSource -a Built-in Input (input) Sound Blaster X_Fi Go_ Pro (input) HD Pro Webcam C920 (input) Built-in Output (output) HDMI (output) Sound Blaster X_Fi Go_ Pro (output) USB Audio (output)
僕の環境ではHDMIがスピーカ出力、Sound Blaster X_Fi GO_Proがヘッドフォン出力になっています。普段使うのはこの2つのどちらかです。-c オプションで現在の設定確認、-s オプションで出力先を変更できます。-t を指定すれば入力デバイスの変更も可能です。
-s オプションでデバイス名を指定する際、デバイス名に空白が含まれる時はエスケープするか、全体をダブルクウォートで括るなどします。この辺は一般的な他のコマンドの動作と同様です。
<span style="color: #ee7621;"># </span><span style="color: #cd661d;">現在の出力先 </span>% SwitchAudioSource -c HDMI <span style="color: #ee7621;"># </span><span style="color: #cd661d;">現在の入力元 </span>% SwitchAudioSource -c -t input Sound Blaster X_Fi Go_ Pro <span style="color: #ee7621;"># </span><span style="color: #cd661d;">現在の出力先 オプション明示 </span>% SwitchAudioSource -c -t output HDMI <span style="color: #ee7621;"># </span><span style="color: #cd661d;">出力先の切り替え </span>% SwitchAudioSource -t output -s <span style="color: #ffa07a;">"Sound Blaster X_Fi Go_ Pro"</span> output audio device set to <span style="color: #ffa07a;">"Sound Blaster X_Fi Go_ Pro"</span> <span style="color: #ee7621;"># </span><span style="color: #cd661d;">確認 HDMI -> Sound Blasterに変更された。 </span>% SwitchAudioSource -c -t output Sound Blaster X_Fi Go_ Pro </div> </div> <div id="outline-container-org3ae3c75" class="outline-3"> <h3 id="org3ae3c75">エイリアスを貼る</h3> <div class="outline-text-3" id="text-org3ae3c75"> <p> SwitchAudioSourceは結構長いコマンドですのでエイリアスを作ります。選択するデバイス名はいつも同じですし。今回は swHDMIでスピーカ―、swHeadPhoneでヘッドフォン、swCheckで設定確認としています。エイリアスなので名称はご自由に。<br /> </p> <pre class="coding" style="color: #00ff00; background-color: #1f1f1f;"> <span style="color: #ee7621;"># </span><span style="color: #cd661d;">エイリアス作成 </span>% alias <span style="color: #eedd82;">swHDMI</span>=<span style="color: #ffa07a;">"SwitchAudioSource -t output -s HDMI"</span> % alias <span style="color: #eedd82;">swHeadPhone</span>=<span style="color: #ffa07a;">"SwitchAudioSource -t output -s \"Sound Blaster X_Fi Go_ Pro\""</span> % alias <span style="color: #eedd82;">swCheck</span>=<span style="color: #ffa07a;">"SwitchAudioSource -c"</span>