iPhones.ru

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

Артём Суровцев avatar | 13
FavoriteLoading В закладки
Как переключать источник звука на Mac одной кнопкой

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

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

volume_menu_bar_sources

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

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

mac121

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

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

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

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

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

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

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

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

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

How_to_switch_volume_on_mac_with_one_button_01

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


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

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

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


brew install switchaudio-osx

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

How_to_switch_volume_on_mac_with_one_button_02

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


SwitchAudioSource

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


SwitchAudioSource -a

How_to_switch_volume_on_mac_with_one_button_03

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

How_to_switch_volume_on_mac_with_one_button_04

4. Теперь запускам приложение Automator. Создаем новую службу, из боковой панели добавляем Утилиты – Запустить Apple Script.

How_to_switch_volume_on_mac_with_one_button_05

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 

How_to_switch_volume_on_mac_with_one_button_06

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

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

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

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

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

How_to_switch_volume_on_mac_with_one_button_07

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

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

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

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

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

How_to_switch_volume_on_mac_with_one_button_08

Можно упростить наш процесс, но сделать его более работоспособным. Для этого в 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")

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

How_to_switch_volume_on_mac_with_one_button_09

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

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

How_to_switch_volume_on_mac_with_one_button_10

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

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

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

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

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

How_to_switch_volume_on_mac_with_one_button_11

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

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

How_to_switch_volume_on_mac_with_one_button_12

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

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

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

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

1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (1 голосов, общий рейтинг: 5.00 из 5)
undefined
iPhones.ru
Этот трюк будет экономить время каждый день.
Здесь можно оставить комментарий! Для этого авторизуйтесь или зарегистрируйтесь на iPhones.ru.

13 комментариев

Форум →
  1. seleznev avatar
    seleznev 28 марта 2017
    5

    Ну ведь можете же не в бандерольку!!!

    Войди на сайт, чтобы ответить
    Ответить
  2. ysach avatar
    ysach 28 марта 2017
    0

    А есть утилита помимо soundflower, с помощью которой можно звук по hdmi регулировать?

    Войди на сайт, чтобы ответить
    Ответить
  3. icemanea avatar
    icemanea 28 марта 2017
    6

    И всё таки! Не проще ли зажать alt и навести мышку на пиктограмму Динамика… Зачем вот эти бубны то? профит? Хоть бы гифку запилили: как было – как стало.

    Артём Суровцев avatar
    Артём Суровцев28 марта 2017
    0

    @icemanea, было неудобно с полноэкранными приложениями и играми, всегда нужно возвращаться на рабочий стол (не все программы поддерживают вывод строки меню), плюс к этому мышь нужно задействовать, а так одна кнопка переключает источники вкруговую.

    Silmaril avatar
    Silmaril29 марта 2017
    0

    @icemanea, на макбуке с тачбаром этой пиктограммы нет. Думаю можно вернуть, но делать это только ради этой функции (котороя мне нужна очень редко) смысла не вижу.
    P.S. Если вдруг когда понадобится мне проще зайти в настройки, хотя от нечего делать можно как-нибудь попробовать и вариант из статьи (за одно пойму как пользоваться Automator’ом).

    icemanea avatar
    icemanea29 марта 2017
    0

    @Silmaril, Вам действительно необходимо зайти в настройки! ведь там есть заветная галочка “Показывать громкость в строке меню”…

    Silmaril avatar
    Silmaril29 марта 2017
    0

    @icemanea, вы наверное не поняли, я не хочу возвращать громкость в строку меню, только лишь ради возможности иногда менять источник звука

    Войди на сайт, чтобы ответить
    Ответить
  4. CIA_agent avatar
    CIA_agent 28 марта 2017
    2

    Alt + клик на иконку динамика

    vaglover avatar
    vaglover28 марта 2017
    0

    @CIA_agent, существует возможность таким образом менять “встроенные динамики” на “наушники”? “встроенные динамики” пропадают при подключении наушников(

    Артём Суровцев avatar
    Артём Суровцев28 марта 2017
    0

    @CIA_agent, нужно зажимать кнопку и использовать мышь или трекпад, а так всего дна кнопка переключает и стоку меню не обязательно выводить

    somebodythatiusedtoknow avatar
    somebodythatiusedtoknow29 марта 2017
    3

    @Артём Суровцев, почти у всех людей 2 руки и по 5 пять пальцев, даже у некоторых есть мозг, зачем лишать людей думать и превращать их в “однокнопочное быдло” ???

    Артём Суровцев avatar
    Артём Суровцев29 марта 2017
    1

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

    Silmaril avatar
    Silmaril29 марта 2017
    0

    @CIA_agent, не всем подходит

    Войди на сайт, чтобы ответить
    Ответить
Помни о правилах — если начал оффтопить, то не удивляйся потом.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.