← Назад в «Блог»
195

Паршивый звук в наушниках macos, решение и автоматизация

Проблема

Я слушаю музыку в наушниках. Иногда звук становится паршивым. Я долго пытался понять, в чем дело. Потом разобрался: если наушники установлены как микрофон в macos, то звук становится плохим. Даже если сходить и переключить звук «входа» на нормальный микрофон, иногда он слетает обратно.

Так в настройках звука выглядит установленный микрофон от наушников

Решение

Чтобы звук снова стал нормальным, надо выбрать другой микрофон — «микрофон Macbook» или «внешний микрофон», если у вас он подключён.

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

Автоматизация решения

Поражаюсь, что в маленькой инди-компании не додумались сделать кнопку: «Микрофон по-умолчнанию». Это бы всё решило.

Этой кнопки нет, придётся решать иначе. Будем делать это через программу Hammerspoon.

1. Скачиваем программу HammerSpoon. Скачается архив, его распаковываем и устанавливаем программу. Вам нужно будет дать ей разрешения, запускать при включении компьютера. Если вы пользователь Macos, должны знать как это делается.

2. Вставляем в терминал команду. Она создаст и откроет файл init.lua для программы.

mkdir -p ~/.hammerspoon && touch ~/.hammerspoon/init.lua && open ~/.hammerspoon/init.lua

3. Откроется программа-редактор с пустым содержанием. Туда надо вставить код ниже. В самом начале файла есть указание микрофона. Измените название с «Микрофон MacBook Pro» на другой. Или добавьте свой.

    -- Список разрешённых микрофонов
    local preferredMics = {
        ["Микрофон MacBook Pro"] = true
    }
    
    -- Функция, переключающая вход
    local function fixInput()
        local currentInput = hs.audiodevice.defaultInputDevice():name()
        print("Текущий микрофон: " .. currentInput)
        
        if not preferredMics[currentInput] then
            for _, device in ipairs(hs.audiodevice.allInputDevices()) do
                if preferredMics[device:name()] then
                    device:setDefaultInputDevice()
                    print("Переключено на: " .. device:name())
                    return
                end
            end
            print("❌ Нет подходящего микрофона среди доступных.")
        else
            print("✅ Микрофон уже правильный.")
        end
    end
    
    -- Создаём watcher и запускаем
    local watcher = hs.audiodevice.watcher
    watcher.setCallback(function()
        hs.timer.doAfter(1, fixInput)
    end)
    watcher.start()
    
    print("🎙️ Hammerspoon следит за микрофоном!")
    

    4. Сохраните файл и нажмите в Hammerspoon в верхнем меню Reload config

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

    Если будут вопросы — пишите. Помогу, чем смогу.

    Полезно
    1
    Непонятно
    Поделиться
    Отправить
    Линкануть
    Вотсапнуть

    Канал Дани в телеграме

    В канале показываю, как разрабатываю продукты: нейронки, боты, пет-проекты, бизнес. Делюсь фишками о разработке и дизайне. Без рекламы.

    Подписаться
    ← Назад в «Блог»

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

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Контакты