Как переключать источник звука на Mac одной кнопкой

Разработчики MacOS сделали процесс переключения источников звука простым и удобным. В строке меню есть соответствующая пиктограмма, нужно лишь нажать на неё и указать нужный пункт.

К сожалению, переключать звук на любом компьютере Mac при помощи всего одной кнопки или сочетания клавиш изначально невозможно.

Есть способ сделать этот процесс максимально удобным.

Зачем это нужно

Согласен, что переключение источников звука нужно не всем и не всегда. Однако, многие пользователи Mac в течение дня часто переключаются между наушниками и динамиками, иногда выводят звук на внешний монитор или телевизор по HDMI, включают передачу звука на Apple TV либо колонки с поддержкой AirPlay.

А еще есть bluetooth-гарнитуры, которые можно использовать в паре с компьютером, быстро переключаясь на наушники для разговора по Skype или FaceTime.

Я пользуюсь этим ежедневно, несколько десятков раз приходится переключаться с гарнитуры на внешние колонки, иногда переключаю звук на bluetooth-гарнитуру или вывожу на Apple TV.

Что понадобится

  • набор утилит для командной строки;
  • специальный скрипт в среде AppleScript;
  • настроенная служба в приложении Automator;
  • 15 минут свободного времени.

Как все это настроить

Пусть вас не пугает перечень выше, практически все из перечисленного уже есть на каждом Mac, лезть в дебри настроек или ковыряться в командной строке не потребуется.

1. Для начала нужно загрузить набор дополнительных утилит. Нам потребуется приложение для командной строки switchaudio-OSX, которое позволяет управлять источниками ввода и вывода звука. Утилита является бесплатной и распространяется на GitHub.

Проще всего загрузить её в составе пакета Homebrew. Это целый набор утилит, которые пригодятся для работы и дальнейшей настройки macOS. Подробнее о нем можно почитать на сайте проекта.

Для загрузки пакета открываем приложение и вставляем следующий код:

/usr/bin/ruby -e «$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)»

Видим, что скрипт загрузит несколько пакетов, подтверждаем клавишей Return (Enter), вводим пароль пользователя macOS и ждем окончания процесса.

2. Теперь нужно установить загруженную утилиту . Для этого в Терминале пишем такую команду:

brew install switchaudio-osx

Ждем окончания установки.

3. Запускаем утилиту командой:

SwitchAudioSource

Видим возможные ключи для работы с утилитой. Нас интересует запуск утилиты с ключом «-a» для отображения всех устройств ввода и вывода звука. Пишем в терминале:

SwitchAudioSource -a

Читайте также  Рейтинг цен на iPhone 6s в мире

Запоминаем название нужных устройств вывода звука.

4. Теперь запускам приложение Automator. Создаем новую , из боковой панели добавляем .

5. Вверху выбираем пункты и . Ниже вставляем следующий код:

set the currentAudioSource to (do shell script «/usr/local/Cellar/switchaudio-osx/1.0.0/SwitchAudioSource -c») if currentAudioSource is equal to «Built-in Output» then do shell script «/usr/local/Cellar/switchaudio-osx/1.0.0/SwitchAudioSource -s «HDMI»» else do shell script «/usr/local/Cellar/switchaudio-osx/1.0.0/SwitchAudioSource -s «Built-in Output»» end if

Вместо “Built-in Output” и “HDMI» впишите пару своих устройств вывода, между которыми нужно переключаться (мы смотрели их в предыдущем пункте).

Для проверки здесь же запускаем службу нажатием на пиктограмму со стрелкой. Если названия источников ввели верно, произойдет переключение между ними.

При желании можно добавить в код еще одно или несколько условий, так получится вкруговую переключаться между несколькими источниками.

7. В Automator выбираем из меню , вводим имя службы и запоминаем его. Теперь наша служба добавлена в систему. Осталось только задать сочетание клавиш для её запуска.

8. Переходим в . Слева выбираем и ищем сохранённую только что службу.

Задаем удобное сочетание клавиш и пользуемся. Не забывайте, что наша служба универсальная и работает в любом приложении вне зависимости от контекста. Чтобы переключение срабатывало всегда, нужно выбрать сочетание клавиш, которое не используется в других программах.

Вот и все! Можно тестировать. Теперь во время игры, просмотра видео, работы в любом приложении можно мгновенно переключиться между источниками вывода звука.

Что можно улучшить

В указанном процессе плохо лишь одно, если любой из источников вывода, который указан в скрипте будет отключен, его работа прервётся.

Например, одним из источников указали Apple TV, беспроводную колонку или bluetooth-гарнитуру. Пока устройство подключено, все работает, но когда оно выключено или вне зоны досягаемости Mac, скрипт будет выдавать ошибку.

Можно упростить наш процесс, но сделать его более работоспособным. Для этого в Automator можно использовать лишь следующий код:

set the currentAudioSource to (do shell script «/usr/local/Cellar/switchaudio-osx/1.0.0/SwitchAudioSource -n»)

Запуск команды с ключом «-n» позволяет просто переключаться на следующее доступное устройство вывода звука. Теперь мы будем по кругу переключаться между устройствами, если одно из них не будет подключено в момент использования службы, никакой ошибки скрипта не будет.

Осталось лишь сделать процесс переключения более наглядным. Для этого добавляем еще одну команду:

set the currentAudioSource to (do shell script «/usr/local/Cellar/switchaudio-osx/1.0.0/SwitchAudioSource -c»)

Читайте также  20 интересных фактов о самом популярном сисадмине в мире

Она позволяет системе идентифицировать текущее устройство.

В Automator добавляем еще два действия: «Установить значение переменной» и «Показать уведомление». В первом блоке присваиваем любое имя для переменной, а во втором – выводим этот параметр в сообщении.

Сохраняем скрипт и проверяем работу службы.

Теперь при переключении между источниками вывода звука будем получать уведомление с текущим выбранным устройством. Просто и наглядно.

Любителям приложения BetterTouchTool

Те, кто использует программу BetterTouchTool, могут добавить соответствующий скрипт прямо в приложение. Для этого:

1. Запускаем настройки BetterTouchTool.

2. Переключаемся в раздел Keyboard. Можно привязать переключение, например, на пульт Apple Remote, для этого выбираем соответствующий раздел.

3. Создаем новое событие, добавляем любую кнопку и выбираем триггер «Run Apple Script».

4. Вставляем код нашего скрипта (первый вариант с переключением между конкретными источниками или второй с циклическим переключением).

Такой способ удобнее тем, что можно привязать переключение не на сочетание клавиш, а на одну любую кнопку. При использовании полноразмерной клавиатуры с цифровым блоком незадействованных клавиш для этого хватает.

Кроме того, BetterTouchTool будет запускать скрипт даже если клавиша используется другой программой или системной службой. В этом случае в приложении будет осуществляться свое действие, а BetterTouchTool запустит нужный нам триггер.

Вот так можно получить удобное средство для переключения между источниками вывода звука.

Спасибо re:Store за полезный совет.

Источник: iphones.ru

ITC infotech
Добавить комментарий