Разработчики 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. Теперь нужно установить загруженную утилиту switchaudio-osx. Для этого в Терминале пишем такую команду:
brew install switchaudio-osx
Ждем окончания установки.
3. Запускаем утилиту командой:
SwitchAudioSource
Видим возможные ключи для работы с утилитой. Нас интересует запуск утилиты с ключом «-a» для отображения всех устройств ввода и вывода звука. Пишем в терминале:
SwitchAudioSource -a
Запоминаем название нужных устройств вывода звука.
4. Теперь запускам приложение Automator. Создаем новую службу, из боковой панели добавляем Утилиты – Запустить Apple Script.
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")
Она позволяет системе идентифицировать текущее устройство.
В Automator добавляем еще два действия: «Установить значение переменной» и «Показать уведомление». В первом блоке присваиваем любое имя для переменной, а во втором – выводим этот параметр в сообщении.
Сохраняем скрипт и проверяем работу службы.
Теперь при переключении между источниками вывода звука будем получать уведомление с текущим выбранным устройством. Просто и наглядно.
Любителям приложения BetterTouchTool
Те, кто использует программу BetterTouchTool, могут добавить соответствующий скрипт прямо в приложение. Для этого:
1. Запускаем настройки BetterTouchTool.
2. Переключаемся в раздел Keyboard. Можно привязать переключение, например, на пульт Apple Remote, для этого выбираем соответствующий раздел.
3. Создаем новое событие, добавляем любую кнопку и выбираем триггер «Run Apple Script».
4. Вставляем код нашего скрипта (первый вариант с переключением между конкретными источниками или второй с циклическим переключением).
Такой способ удобнее тем, что можно привязать переключение не на сочетание клавиш, а на одну любую кнопку. При использовании полноразмерной клавиатуры с цифровым блоком незадействованных клавиш для этого хватает.
Кроме того, BetterTouchTool будет запускать скрипт даже если клавиша используется другой программой или системной службой. В этом случае в приложении будет осуществляться свое действие, а BetterTouchTool запустит нужный нам триггер.
Вот так можно получить удобное средство для переключения между источниками вывода звука.
Спасибо re:Store за полезный совет.
13 комментариев
Форум →Ну ведь можете же не в бандерольку!!!
А есть утилита помимо soundflower, с помощью которой можно звук по hdmi регулировать?
И всё таки! Не проще ли зажать alt и навести мышку на пиктограмму Динамика… Зачем вот эти бубны то? профит? Хоть бы гифку запилили: как было – как стало.
@icemanea, было неудобно с полноэкранными приложениями и играми, всегда нужно возвращаться на рабочий стол (не все программы поддерживают вывод строки меню), плюс к этому мышь нужно задействовать, а так одна кнопка переключает источники вкруговую.
@icemanea, на макбуке с тачбаром этой пиктограммы нет. Думаю можно вернуть, но делать это только ради этой функции (котороя мне нужна очень редко) смысла не вижу.
P.S. Если вдруг когда понадобится мне проще зайти в настройки, хотя от нечего делать можно как-нибудь попробовать и вариант из статьи (за одно пойму как пользоваться Automator’ом).
@Silmaril, Вам действительно необходимо зайти в настройки! ведь там есть заветная галочка “Показывать громкость в строке меню”…
@icemanea, вы наверное не поняли, я не хочу возвращать громкость в строку меню, только лишь ради возможности иногда менять источник звука
Alt + клик на иконку динамика
@CIA_agent, существует возможность таким образом менять “встроенные динамики” на “наушники”? “встроенные динамики” пропадают при подключении наушников(
@CIA_agent, нужно зажимать кнопку и использовать мышь или трекпад, а так всего дна кнопка переключает и стоку меню не обязательно выводить
@Артём Суровцев, почти у всех людей 2 руки и по 5 пять пальцев, даже у некоторых есть мозг, зачем лишать людей думать и превращать их в “однокнопочное быдло” ???
@somebodythatiusedtoknow, так зачем Вам современный компьютер, в нём слишком простое управление, берите вычислительную машину на перфокартах. Пока будите составлять и вырезать карты заодно и мозг потренируете.
@CIA_agent, не всем подходит
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как отключить визуальные эффекты в macOS, чтобы ускорить работу Mac
Почему iPhone не видит Lightning-флешку
Как на iPhone поменять тарифный план iCloud
Как устранить смещение фронтальной камеры на iPhone
Как увеличить размер шрифта на iPhone
Как добавить клавишу Insert на Mac
Что означает ошибка «Профиль приложения больше не доступен» в iOS
Как на iPhone скрыть текст уведомлений в режиме Ожидание