👌

GoogleMeetのマイクをアプリケーション外から操作するには(Mac)

2022/10/23に公開

背景

GoogleMeet をサブディスプレイに写しつつ、メインディスプレイで作業していたりすると
マイクの On/Off の切り替えをするためだけにブラウザを切り替える必要があり、楽にできないかなぁと思ってました

Alfred や Raycast などのランチャー、もしくはショートカットキーに登録しマイクを操作できるといいなぁ、と考え
解決策を探ってみた記事です。

案 1 マイクレベルを操作

macOS レベルでマイクの入力レベルでコントロールする

osascript -e "set volume without output muted"
osascript -e "set volume with output muted"

確かに、マイクの Input レベルをコントロールできている、が
Input レベルが 0 なだけで、MuteUnmuteかでいうとUnmuteな状態と判定されるため、
普通に声が漏れる。だめ

案 2 Selenium

GoogleMeet の場合、マイクのトグルはショートカットで提供されている
そこで、Selenium で対象のブラウザを URL で探し出し、ショートカットキーを送信すれば
トグルが実現できるはず。

操作するためには、ブラウザに Selenium WebDriver が読み込まれた状態でブラウザを起動する必要がある
しかし、GoogleMeet の操作のためだけに普段使いするブラウザに WebDriver をいれっぱなしにするのはどうかと思うので諦め

案 3 HID

GoogleMeet に新機能として、HID 経由でマイクを操作できる機能(通話コントロール)がついかされていた。これだ!

何故か外部キーボードしかだめで、Mac 内蔵キーボードは無視されている。
そこで、仮想的に HID を作成し(Karabiner の仮想キーボードのように)、それを通じて Mute コマンドを送信する。

おわり

正直微妙な解決策しかない orz

Discussion