目的
Macで無線でのデュアルディスプレイ時に毎回オーディオ出力設定の変更が必要になり、その手間を省きたい。
デュアルディスプレイ環境
Macのデュアルディスプレイ環境をFire TV StickとAirReceiverで実現している。
Macからディスプレイに接続した際にオーディオ出力もディスプレイに変わってしまうのが難点。
実装方法をChatGTPに聞いてみる
MacのAutomatorの存在は知っていたので、Automatorで実装する方法を聞いてみた。
質問内容と回答
質問内容
- macでAutomatorを使用してAudio MIDI設定でサウンド出力装置を変更する方法を教えてください
ChatGPTからの回答
MacでAutomatorを使用してAudio MIDI設定でサウンド出力装置を変更するには、次の手順に従ってください。
-
Automatorを開く:
- 「アプリケーション」フォルダからAutomatorを探し、クリックして開きます。
-
新しいワークフローを作成する:
- 「ファイル」メニューから「新規」を選択します。
- ワークフロータイプとして、「クイックアクション」を選択し、「選択」ボタンをクリックします。
-
ワークフローを設定する:
- 上部の「ワークフローが受け取る現在の入力」メニューで、「なし」を選択します。
-
「シェルスクリプトの実行」アクションを追加する:
- 左側のライブラリパネルで、「ユーティリティ」カテゴリをクリックします。
- 「シェルスクリプトの実行」アクションを見つけて、ワークフローエリアにドラッグアンドドロップします。
-
シェルスクリプトを記述する:
- 「シェル」ドロップダウンメニューで、「/bin/bash」を選択します。
- 「スクリプト」テキストエリアに次のスクリプトを貼り付けます(デバイス名を適切なものに置き換えてください):
DEVICE_NAME="Your Device Name"
AUDIO_DEVICE_ID=$(system_profiler SPAudioDataType | grep -B 5 -A 1 "$DEVICE_NAME" | awk '/^ *Output Device ID:/{print $NF}')
switchaudiodevice -s $AUDIO_DEVICE_ID
注意: 上記のスクリプトでは、switchaudiodevice
コマンドを使用しています。これは、SwitchAudioSource ツールの一部であり、事前にインストールする必要があります。ターミナルで次のコマンドを実行してインストールしてください:
brew install switchaudio-osx
もしHomebrewがインストールされていない場合は、まず Homebrew をインストールしてください。
-
ワークフローを保存:
- 「ファイル」メニューから「保存」を選択し、名前を付けて保存します。
-
クイックアクションを利用:
- 作成したクイックアクションは、Finderやタッチバーなどで利用できます。
これで、Automatorを使ってAudio MIDI設定でサウンド出力装置を変更する方法が完成しました
す、すごい!これ通りにやればできそう。
ということで、実際に回答通りに試したところ...できませんでした(笑
回答内容の間違っていたところ
回答内容はほとんど問題なく、SwitchAudioSource
コマンドの使用方法が間違っていました。
以下のコマンドで切替ができました。
/opt/homebrew/bin/SwitchAudioSource -s 出力装置名
出力装置名は
/opt/homebrew/bin/SwitchAudioSource -a
で確認できます。
ドキュメントを見ると、-s
オプションで出力装置名を指定するだけでよかったみたいです。
回答では、名前でなくIDを指定していたためエラーになりました。
また、Automatorで使用されるシェル環境では、SwitchAudioSource
コマンドはフルパス指定でしか実行できませんでした。
これについては、エラー時にChatGPTに質問して解決できました。
実装方法
以上より、自動化する手順は以下の通りとなります。
-
Automatorを開く:
- 「アプリケーション」フォルダからAutomatorを探し、クリックして開きます。
-
新しいワークフローを作成する:
- 「ファイル」メニューから「新規」を選択します。
- ワークフロータイプとして、「クイックアクション」を選択し、「選択」ボタンをクリックします。
-
ワークフローを設定する:
- 上部の「ワークフローが受け取る現在の入力」メニューで、「なし」を選択します。
-
「シェルスクリプトの実行」アクションを追加する:
- 左側のライブラリパネルで、「ユーティリティ」カテゴリをクリックします。
- 「シェルスクリプトの実行」アクションを見つけて、ワークフローエリアにドラッグアンドドロップします。
-
シェルスクリプトを記述する:
- 「シェル」ドロップダウンメニューで、「/bin/bash」を選択します。
- 「スクリプト」テキストエリアに次のスクリプトを貼り付けます(デバイス名、コマンドのpathを適切なものに置き換えてください):
コマンドのpath/SwitchAudioSource -s 出力装置名
注意: 上記のスクリプトでは、SwitchAudioSource
コマンドを使用しています。これは、SwitchAudioSource ツールの一部であり、事前にインストールする必要があります。ターミナルで次のコマンドを実行してインストールしてください:
brew install switchaudio-osx
もしHomebrewがインストールされていない場合は、まず Homebrew をインストールしてください。
-
ワークフローを保存:
- 「ファイル」メニューから「保存」を選択し、名前を付けて保存します。
-
クイックアクションを利用:
- 作成したクイックアクションは、Finderやタッチバーなどで利用できます。
終わりに
作成したクイックアクションに適当な名前をつけてDockに表示させることで、ワンクリックでオーディオ出力装置を切り替えれるようになりました。
Automatorの使用経験がなくてもChatGTPに質問してここまで短時間でできるとは思っていなかったので驚きました。