Parallelsの不具合か、起動状態を続けていると内蔵スピーカーから音が鳴らなくなることがあります。
この場合はMacを再起動すれば直るのですが、如何せん発生頻度が高すぎてちょっと面倒です。こんな時はmacの内蔵スピーカーを操作しているサービスを再起動することで対処します。
macOSのオーディオサービスは「coreaudiod」らしいです。
次のコマンドでうまく再起動できました。
sudo launchctl stop com.apple.audio.coreaudiod && sudo launchctl start com.apple.audio.coreaudiod
参考:
qastack.jp
apple.stackexchange.com
ただ、止まるたびにターミナルを開くのも面倒なので、Automatorでアプリケーション化しました。
作り方
「AppleScriptを実行」をタスクから持ってきて次を入力します。
on run {input, parameters} set result to do shell script "launchctl stop com.apple.audio.coreaudiod && launchctl start com.apple.audio.coreaudiod" with administrator privileges return result end run
実行するとパスワード認証のダイアログ(いつものやつ)が表示されます。
通知は自分で判断しやすいように付けています。
アプリを保存し、Applicationフォルダに入れてやるとクイックランチから開けるようになります。
音が鳴らなくなったら起動し、パスワードを入力してあげればオーディオサービスが再起動し、音がなるようになります(なりました)
別の方法
AppleScriptにできることをよく知らなかった時に以下を書きました。
起こることは同じなんですけどね。スマートではなかった;;
AutomaterからAppleScriptとシェルスクリプトを代入し、以下を入力。
on run {input, parameters} display dialog "管理者パスワードを入力してください。" default button 2 default answer "" with icon 2 with hidden answer set tmpText to result set Passwd to text returned of tmpText return Passwd end run
ダイアログを表示しパスワード入力を行わせ、次のシェルスクリプトで読み込ませます。
シェルスクリプト側の「引数引き渡し方法」を「stdinへ」から「引数として」に変更しておきます。
echo $1 | sudo -S launchctl stop com.apple.audio.coreaudiod echo $1 | sudo -S launchctl start com.apple.audio.coreaudiod
Apple Scriptの参考:
sakuraorange.minibird.jp
sites.google.com
シェルスクリプトの参考:
linux.just4fun.biz
ちなみに
Automatorで作成したアプリも、ディレクトリと同様にアイコンを変更することができます。
アイコンはIconionを使って作成しました。
簡単におしゃれなアイコンが作れます。いい感じ🔊
AppleScriptはなかなか曲者ですね。初めシェルにAppleScriptで変数を渡す方法が一向に分からず、2時間くらい調べてました。
Appを配布したいのですが、どんな情報が入っているかちょっと分からないので控えさせて頂きます。