Допустим, вы смотрите фильм или играете в игру на ПК с Windows. Визуальное качество на высшем уровне, и все выглядит великолепно. За исключением одного: есть раздражающая задержка вывода звука на динамик Bluetooth. Вы перезаряжаете винтовку, но через несколько секунд (или микросекунд) ваши Bluetooth-наушники воспроизводят звуковой эффект. Нет аудиовизуального соглашения, и все рассинхронизировано. Как это исправить?
Сначала проверьте, отключен ли режим полета. Вы также можете попробовать перезагрузить компьютер. Если воспроизведение звука на устройстве Bluetooth по-прежнему не синхронизировано с изображением на экране, попробуйте шесть (6) решений по устранению неполадок, перечисленных ниже. Мы уверены, что по крайней мере один из них поможет решить проблему задержки Bluetooth на вашем ПК с Windows 10.
1. Устранение проблем с близостью и помехами
Расстояние играет важную роль в определении качества звука с беспроводными устройствами Bluetooth. Убедитесь, что ваш компьютер и аудиоустройство Bluetooth находятся в пределах досягаемости. Вы также должны убедиться, что между вашим компьютером и аудиоустройством нет никаких физических препятствий (например, стены). Это может помешать соединению Bluetooth и привести к задержке звука.
Говоря о помехах, убедитесь, что аудиоустройство не находится рядом с другим устройством, подключенным к порту USB 3.0 вашего ПК. Microsoft предупреждает, что это может нарушить передачу аудиосигнала по Bluetooth. Если, например, вы испытываете задержку звука при использовании Bluetooth-динамика, расположенного рядом с USB-портом вашего ПК, отодвиньте динамик и проверьте, устраняет ли это проблему.
Мы рекомендуем ознакомиться с официальным руководством Microsoft по устранение проблем с Bluetooth в Windows 10.
Запустите меню настроек Bluetooth на своем ПК («Настройки» > «Устройства» > «Bluetooth и другие устройства») и выключите Bluetooth. Подождите пару секунд и снова включите Bluetooth.
Кроме того, вы также можете отключить устройство Bluetooth вручную. Нажмите на Bluetooth-устройство с задержкой звука и выберите «Отключить».
Повторно подключите устройство к компьютеру (нажмите кнопку «Подключить») и проверьте, устраняет ли это проблему синхронизации звука.
3. Устранение неполадок с подключенным устройством
Если вы испытываете задержку звука, плохое качество звука и другие связанные с этим проблемы при воспроизведении звука через Bluetooth, средство устранения неполадок Windows Audio может решить эту проблему.
Шаг 1: Откройте меню «Настройки» и выберите «Система».
Шаг 2: Перейдите в раздел «Звук» и нажмите кнопку «Устранение неполадок».
Это запустит средство устранения неполадок со звуком в новом окне. Подождите, пока инструмент продиагностирует ваши аудиоустройства, и перейдите к следующему шагу.
Шаг 3: Выберите устройство Bluetooth с проблемой задержки звука и нажмите «Далее».
Специалист по устранению неполадок проведет дальнейшую диагностику устройства и немедленно порекомендует решения, если обнаружит какую-либо проблему, влияющую на воспроизведение и качество звука. Следуйте рекомендуемой подсказке и посмотрите, поможет ли это. Перейдите к следующему решению, если средство устранения неполадок не обнаружило проблем с устройством Bluetooth.
4. Запустите средство устранения неполадок Bluetooth.
Это еще один встроенный инструмент, который может помочь обнаружить и исправить проблемы, влияющие на производительность Bluetooth вашего ПК с Windows.
Шаг 1. Запустите настройки Windows и выберите «Обновление и безопасность».
Шаг 2: Перейдите в меню «Устранение неполадок».
Шаг 3. В разделе «Найти и устранить другие проблемы» выберите Bluetooth и нажмите кнопку «Запустить средство устранения неполадок».
Это запустит средство устранения неполадок Windows Bluetooth. Инструмент продиагностирует ваш компьютер и попытается автоматически исправить любой обнаруженный сбой, связанный с Bluetooth. Тем временем все активные устройства Bluetooth, подключенные к вашему ПК, будут отключены (и снова подключены). Однако вам не о чем беспокоиться; это не испортит настройки вашего устройства.
Средство устранения неполадок сообщит вам о проблемах с Bluetooth, которые оно диагностировало и устранило. Попробуйте воспроизвести медиафайл (желательно видео) на своем компьютере и проверьте, устранена ли проблема с задержкой звука.
5. Проверьте устройство Bluetooth
Иногда проблемы могут быть связаны с подключенным устройством Bluetooth, а не с вашим ПК. Если устройство питается от батареи (например, беспроводные наушники или портативный динамик), убедитесь, что оно достаточно заряжено. Вы также можете попробовать перезагрузить или сбросить настройки устройства. Обратитесь к руководству по эксплуатации устройства, чтобы узнать, как устранить проблемы с подключением и воспроизведением.
6. Отключить улучшения звука
Использование Audio Enhancements может помочь вам сделать звук на вашем ПК более громким и качественным — для проводных и беспроводных устройств. Однако эти улучшения иногда приводят к искажению звука, задержке звука и другим проблемам. Выполните следующие действия, чтобы отключить все улучшения звука для соответствующего устройства Bluetooth.
Шаг 1: Перейдите в меню настроек звука Windows («Настройки» > «Система» > «Звук»).
Шаг 2: Убедитесь, что затронутое устройство Bluetooth является выбранным устройством вывода. Щелкните Свойства устройства, чтобы продолжить.
Откроется страница свойств устройства Bluetooth.
Шаг 3. Прокрутите страницу вниз и нажмите «Дополнительные свойства устройства».
Шаг 4: В новом окне перейдите на вкладку «Улучшения». Установите флажок «Отключить все улучшения» и нажмите «ОК», чтобы сохранить изменения.
Синхронизируйте вещи
Чтобы добавить к приведенным выше решениям, мы рекомендуем перезапустить программу или приложение, в котором вы испытываете задержку звука. Если это игра, закройте и перезапустите ее. А если проблема связана с видео, перезапустите медиаплеер или используйте другое приложение. Наконец, вы также должны проверить, что драйвер Bluetooth вашего ПК и операционная система обновлены.
Далее: не можете найти значок/параметр Bluetooth на ПК с Windows 10? Прочитайте это руководство по ссылке ниже, чтобы узнать 8 способов исправить отсутствие Bluetooth в диспетчере устройств.
Post Views: 4 646
Одна из основных причин, по которой люди предпочитают проводные наушники Bluetooth наушникам, заключается в том, что иногда у них возникают задержки звука. Однако эту проблему можно легко исправить с помощью небольших настроек. В этой статье мы рассмотрим все возможные решения, чтобы исправить задержку звука Bluetooth в Windows 10.
Вот что вы можете сделать, чтобы исправить задержку звука Bluetooth в Windows 10:
- Очистите все препятствия
- Повторно подключите ваше устройство Bluetooth
- Запустите средства устранения неполадок
- Подключайте по одному устройству за раз
- Отключить улучшения звука
- Обновите драйверы Bluetooth
- Перезапустите аудиослужбу Windows
Поговорим о них подробнее.
1]Уберите все препятствия
Сигналы Bluetooth — это не что иное, как волны, для связи он использует коротковолновые радиоволны UHF. Таким образом, это нормально, когда он искажается из-за препятствий.
Поэтому вам необходимо убедиться, что между вашим компьютером (или источником, к которому подключен Bluetooth) и устройством Bluetooth нет препятствий.
Еще одна вещь, которую вам нужно учитывать, — это расстояние между компьютером и Bluetooth, если оно слишком велико, вы почувствуете задержку звука.
2]Повторно подключите устройство Bluetooth.
Если первое решение вам не подошло, начните отсюда. Самый простой способ решить проблему — повторно подключить устройство Bluetooth.
Для этого нажмите Win + X> Настройки. Теперь нажмите «Устройства», ваше устройство Bluetooth, а затем «Отключиться».
Теперь нажмите кнопку «Подключить», чтобы повторно подключить устройство Bluetooth. Если задержка возникла из-за сбоя, это решит проблему за вас.
Вы даже можете перезапустить Bluetooth своего компьютера, используя переключатель в том же окне.
Читайте: Bluetooth-наушники не работают.
3]Запустите средства устранения неполадок
Microsoft создала одно из лучших программ для устранения неполадок на рынке, и в этом разделе мы собираемся использовать это в наших интересах.
Чтобы устранить неполадки со звуковым устройством, нажмите Win + X> Настройки. Теперь нажмите «Обновление и безопасность»> «Устранение неполадок»> «Дополнительные средства устранения неполадок»> «Воспроизведение звука»> «Устранение неполадок».
Мастер попросит вас выбрать аудиоустройство, выбрать и нажать «Далее». Ваша проблема будет обнаружена и, надеюсь, исправлена.
Чтобы устранить неполадки Bluetooth, откройте «Настройки» и нажмите «Обновление и безопасность»> «Устранение неполадок»> «Дополнительные средства устранения неполадок»> «Bluetooth»> «Устранение неполадок».
Наконец, следуйте инструкциям на экране, чтобы запустить это решение проблемы.
Вы также можете запустить средство устранения неполадок Bluetooth с той же страницы.
4]Подключайте по одному устройству за раз
У большинства из нас есть два или три устройства, подключенных к одной Bluetooth-гарнитуре или динамику. И когда мы запускаем наше устройство Bluetooth, оно автоматически подключается ко всем устройствам. Из-за этого может наблюдаться задержка звука. Следовательно, вам необходимо убедиться, что ваш Bluetooth подключен к одному устройству одновременно.
Читайте: устройства Bluetooth не отображаются, не сопрягаются или не подключаются.
5]Отключить улучшения звука
Тем не менее, улучшения звука могут улучшить качество прослушивания, улучшив определенные ноты. Однако эта функция также может привести к искажению звука и задержкам. Поэтому, чтобы исправить задержку звука Bluetooth в Windows 10, мы собираемся отключить улучшения звука.
Для этого выполните предписанные шаги:
- Запустите настройки, нажав Win + X> Настройки.
- Щелкните Система> Звук> Свойства устройства> Дополнительные свойства устройства.
- Теперь перейдите на вкладку «Улучшения», установите флажок «Отключить все улучшения» и нажмите «Применить»> «ОК».
6]Обновите драйвер Bluetooth
Это решение можно применить к любой проблеме, связанной с Bluetooth. Устаревший драйвер может доставить вам много проблем, и задержка звука Bluetooth является одним из них. Следовательно, нам нужно обновить наш драйвер Bluetooth.
Для этого запустите Диспетчер устройств из меню «Пуск». Разверните Bluetooth, щелкните свое устройство правой кнопкой мыши и выберите Обновить драйвер. Мастер попросит вас либо выбрать «Искать драйверы автоматически», либо «Искать драйверы на моем компьютере», выберите первый вариант, если вы хотите, чтобы компьютер выполнял поиск обновленного драйвера в Интернете, и последний, если вы уже загрузили обновленный драйвер на свой компьютер. .
После обновления драйвера попробуйте перезагрузить компьютер, чтобы устранить проблему задержки звука Bluetooth.
7]Перезапустите службу Windows Audio.
Если вы по-прежнему не можете решить проблему задержки звука Bluetooth, попробуйте перезапустить Windows Audio Service.
Для этого запустите Services из меню «Пуск», прокрутите немного вниз, щелкните правой кнопкой мыши Windows Audio, выберите «Перезагрузить» и нажмите «Да» для подтверждения.
Наконец, перезагрузите компьютер, подключитесь к устройству Bluetooth и наслаждайтесь.
Прочтите: Устранение проблем со звуком и звуком в Windows 10.
Надеюсь, это помогло вам исправить задержку звука Bluetooth в Windows 10.
.
Совсем недавно мы купили новый ноутбук на Windows человеку, который до сих пор пользовался Mac’ами. Одна из замеченных проблем — при просмотре видео звук в Bluetooth наушниках запаздывает по отношению к видео, причём заметно. Используя slow motion видео на телефоне, мы выяснили, что задержка составляет порядка 200мс. Это много, и это мешает воспринимать речь в видео.
В то же время, на маке нет задержки. Почему так? Давайте разбираться.
Причины задержки звука
Воспроизводимый звук всегда будет отставать от источника. Часть этого отставания вызвана вполне физическими процессами — информация о звуке (в виде электронных сигналов) и собственно звук (в виде колебаний среды) должны дойти до наших ушей. Например, наблюдаемые 200мс — это время, за которое звук преодолевает примерно 70 метров в воздухе. Иными словами, если бы мы сидели в 70 метрах от ноутбука, 200мс было бы вполне ожидаемой задержкой.
Однако, мы не сидим в 70 метрах. А свет распространяется настолько быстро, что временем на распространение электронных сигналов можно пренебречь. Тут на первый план выходит задержка на программную обработку сигнала и буферизацию. Bluetooth — беспроводная связь, подверженная шумам и требующая разных согласований и разделений между устройствами, поэтому данные нельзя передавать в реальном времени. Чтобы звук шёл плавно, нужно на устройстве иметь достаточно большой буфер, который (почти) никогда не заканчивается — если передача застряла по любой причине, устройство продолжит играть звук из буфера.
Это очень краткое и грубое объяснение, если хотите подробностей — см. здесь. Главное, что нам нужно знать — через Bluetooth задержка неизбежна. Это вам не проводные наушники (хотя и там есть небольшая задержка).
Есть aptX LL, который должен снижать задержку для интерактивных приложений, но ни наушники, ни ноут этого протокола не поддерживают. Значит, так или иначе у нас будет минимум ~130мс задержки.
А Mac?
Окей, но ведь мак выводит звук без задержки? На самом деле, это не так. Если провести эксперимент и, написав примитивный HTML, заставить мак вывести аудио неожиданно, мы увидим те же самые ~200мс задержки.
Когда воспроизводится видео (ютуб), мак задерживает видеопоток, чтобы синхронизировать картинку и звук. Это нормально, потому что если видео начнёт воспроизводиться на 200мс позже, вы этого не заметите. Из разных источников, которые сейчас я уже не найду, я выяснил, что мак спрашивает у наушников, через сколько времени они выведут звук, и выводит видео с такой же задержкой.
То есть, мак обманывает нас и тем самым устраняет видимую задержку, хотя физически задержка всё ещё на месте. Я хочу быть обманутым!
Почему же винда этого не делает? Сие есть тайна великая. Цель этой статьи — не разрешить эту загадку, а исправить положение дел хоть как-нибудь.
Цель: заставить хром под виндой выводить видео с задержкой, чтобы аудио и видео синхронизировались.
При этом хотелось бы, чтобы при обновлении хрома/винды всё не сломалось.
Мы не будем пытаться узнать у bluetooth устройства, какая у него задержка, потому что писать драйвера под винду у меня сертификата нет.
Chrome
Мак не может задерживать всё видео подряд, потому что тогда весь интерфейс будет на 200мс в прошлом. Значит, он сообщает в Chrome задержку, и тот уже задерживает видео.
И действительно, можно найти вот это место в коде хрома, где аудиопоток запрашивает задержку, и вот эту функцию, где данные получаются из системы.
Под виндой, как ни странно, тоже есть похожий код, который опирается на функцию IAudioClock::GetPosition. Вот только винда не сообщает реальную позицию на аудио-устройстве, а учитывает только время на формирование потока данных. Я потратил пару часов на анализ того, как GetPosition
работает, и что означают записи в реестре по адресу HKLMSOFTWAREMicrosoftWindowsCurrentVersionMMDevicesAudioRender{GUID}Parameter
Коротко говоря, я так и не понял. Разбираться в кишках GetPosition
и её взаимодействий с остальным стеком без исходников очень тяжело. Это COM, весь построенный на интерфейсах, и там чёрт ногу сломит. Обидно: если бы можно было изменить какое-нибудь значение в реестре и указать задержку, проблема была бы решена…
Но ладно, мы выяснили, что хром готов к задержке под виндой, вот только она о ней не сообщает. А давайте проверим, что будет, если бы сообщала? Качаем исходники хрома, настраиваем сборку, и патчим этот код вот так:
Собираем и запускаем по оф. инструкции. Прошло 6 часов сборки, хром запустился. И видео стало опережать аудио на ~200 мс! Значит, предположение верно, хром может делать задержку.
Мы теперь можем пропатчить хром и, скажем, добавить флаг в chrome://flags
, чтобы задавать задержку. Но я могу себе представить, насколько такой флаг понравится хрому. И времени это займёт уйму, и шанс на успех не очень уж большой. Особенно если учесть аналогичный баг под линуксом.
Hack
COM можно перехватывать, если внедрить в Chrome свою DLL, и тогда можно будет управлять возвращаемым из GetPosition
значением, чтобы подкручивать задержку так, как нам хочется. Это решение хорошо по нескольким причинам:
-
Не сломается с обновлением хрома.
-
Будет работать с любой программой, использующей такой же метод доступа к аудио.
-
Быстро реализуется.
Но есть одна большая проблема: мы собираемся внедрять DLL в Chrome. Chrome — это браузер, и он очень активно защищается от любого вида внедрений кода, по понятным причинам. Например, здесь описываются защиты, и они довольно серьёзные. Главное ограничение, которое для нас важно — можно динамически грузить только библиотеки, подписанные ключом Microsoft. Шансов, что MS подпишет нашу библиотеку, не то что бы совсем нет, но величина эта из разряда особо малых.
С другой стороны, есть гитхаб проекта, который внедряет DLL в хром! См. тут. Качаем проект, запускам-проверяем, и видим любопытное:
Значит, хром не так уж и защищается? Потираем руки и пишем свою DLL.
DLL
Если коротко, работу DLL можно описать так: построить IAudioClock
как-нибудь, и пропатчить его vftable (таблицу виртуальных функций), что автоматически изменит все остальные IAudioClock
.
Строим IAudioClock
как-нибудь:
CoInitialize(NULL); // Поднимаем инфру COM
CoCreateInstance(
CLSID_MMDeviceEnumerator, NULL,
CLSCTX_ALL, IID_IMMDeviceEnumerator,
(void**)&pEnumerator); // Получаем IMMDeviceEnumerator
pEnumerator->GetDefaultAudioEndpoint(
eRender, eConsole, &pDevice); // Получаем audio endpoint
pDevice->Activate(
IID_IAudioClient, CLSCTX_ALL,
NULL, (void**)&pAudioClient); // Получаем аудио клиент
pAudioClient->GetMixFormat(&pwfx); // Нам нужен формат, получим
pAudioClient->Initialize(
AUDCLNT_SHAREMODE_SHARED,
0,
hnsRequestedDuration,
0,
pwfx,
NULL); // Инициализируем аудио-клиент
pAudioClient->GetService(IID_PPV_ARGS(&pClock)); // Получаем часы
InstallComInterfaceHooks(pClock, IID_IAudioClock); // И патчим их
Всё довольно просто и, в целом, следует гайду MS по получению аудио клиента (например, этому).
Замечательно, теперь давайте пропатчим полученный вышеpClock
:
// Патчит один метод
HRESULT HookMethod(IUnknown * original, PVOID proxyMethod, PVOID * originalMethod, DWORD vtableOffset)
{
// Получаем vftable
PVOID* originalVtable = *(PVOID**)original;
// Сохраняем оригинальный метод
*originalMethod = originalVtable[vtableOffset];
// Патчим!
originalVtable[vtableOffset] = proxyMethod;
return S_OK;
}
HRESULT InstallComInterfaceHooks(IUnknown * originalInterface, REFIID riid)
{
HRESULT hr = S_OK;
// Это часы?
if (riid == IID_IAudioClock)
{
ATL::CComPtr<IAudioClock> so;
// Получим интерфейс часов из IUnknown - проверка, что он есть
HRESULT hr = originalInterface->QueryInterface(IID_IAudioClock, (void**)&so);
if (FAILED(hr)) return hr; // Это что такое? Нам часы нужны.
// Снимаем защиту с памяти
DWORD dwOld = 0;
::VirtualProtect(*(PVOID**)(originalInterface), sizeof(LONG_PTR)*5, PAGE_READWRITE, &dwOld);
DWORD tmp;
// Патчим метод GetPosition
// Его номер в таблице - 4
HookMethod(so, (PVOID)Hook::GetPositionOriginal, &g_Context->m_OriginalGetPosition, 4);
// Возвращаем защиту памяти как была
::VirtualProtect(*(PVOID**)(originalInterface), sizeof(LONG_PTR)*5, dwOld, &tmp);
}
return hr;
}
Единственное, что неочевидно — откуда брать эту четвёрку, номер функции в vftable. Если посмотреть на IAudioClock
(тут), видно, что GetPosition
в нём под вторым номером ( на MSDN по алфавиту). При этом IAudioClock
наследует от IUnknown
, в котором три функции (QueryInterface
, AddRef
, Release
). Значит, наша GetPosition
— пятая, и имеет смещение 4.
DLL в первом приближении готова, и надо проверить её. Я написал примитивную программу, которая ничего особо не делает, только вызывает GetPosition
, и внедрил DLL в неё. И всё отработало!
Injection
Я воспользовался тем же самым инжектором, который уже работал, и внедрил библиотеку в хром.
Внедрение происходит более-менее стандартным способом: выделяется участок памяти под путь к файлу с DLL, и создаётся поток с точкой входа на LoadLibrary
. Поскольку эта функция принимает ровно один аргумент, его можно передать в CreateRemoteThread
, и поток загрузит DLL. Из забавного только то, что kernel32.dll
, в которой LoadLibrary
находится, не подвержена ASLR, и поэтому её функции всегда имеют один и тот же адрес во всех процессах (одинаковой архитектуры). Поэтому можно найти LoadLibrary
в своём процессе и вызвать по тому же адресу в другом.
Итак, я загрузил DLL, и… ничего не произошло. Библиотека внедрилась в хром, но GetPosition
не вызывался!
Я приаттачился к chrome.exe дебаггером, и увидел, что GetPosition
действительно не вызывается. Что за дела?
Оказывается, за звук в Chrome отвечает особая подсистема, называемая audio.mojom.AudioService
. И это отдельный процесс хрома, в который инжектор не инжектит, из-за вот этой вот проверки. Если проверить в этом процессе дебаггером, видно, что GetPosition
вызывается. Не беда, убираем проверку, запускаем, и… ничего! Библиотека не появляется в списке библиотек.
Вы знаете, как удобно отлаживать внедрение библиотеки? Учитывая, что это извне созданный поток, который выполняет одну единственную функцию LoadLibrary
? И что эта функция возвращает bool
, а ошибка получается через GetLastError
, которая для каждого потока своя? Я отвечу — вообще неудобно! Пришлось приаттачиться к процессу chrome.exe, поставить точку останова в LoadLibrary
, и после этого вызвать создание потока. Ошибка — STATUS_INVALID_IMAGE_HASH
, и это означает, что включилась защита хрома. Эта ошибка возвращается, если библиотека не подписана Microsoft.
См. здесь, страница 29. Получается, хром не защищает корневой процесс, но защищает детей, включая аудио-подсистему.
Ой.
Но ведь мне дают создать поток в хроме и память читать-писать! И вообще, а как же отладчики это всё делают?
Если гора не идёт к Магомету… Давайте сделаем ручками.
Ручной импорт DLL
Что такое импорт DLL? Что такое делает LoadLibrary
, чего мы не можем сделать вручную?
Для нормальной работы DLL нужны следующие действия по её загрузке:
-
Загрузить DLL в память процесса.
-
Настроить reloc’и.
-
Настроить импорты.
-
Передать управление в
DllMain
.
И всё это мы, в целом, можем сделать сами. Часть операций будет производить внешний процесс (выделение памяти, копирование, создание потока), а часть (настройка reloc’ов и импортов, вызов DllMain
) — код загрузчика, который внешний процесс внедряет в chrome.exe.
Код загрузчика (loader’а) должен быть PIC, то есть, poisition-independent, и не должен вызывать никаких библиотечных функций. Тогда этот код будет выглядеть совершенно одинаково в обоих процессах.
Наша библиотека, в свою очередь, не должна ссылаться ни на какие библиотеки, которые не подписаны Microsoft. Но это не проблема — нам нужны две с половиной библиотеки, и они подписаны.
Код загрузчика — многабукав
Давайте посмотрим и разберём код загрузчика — он не очень сложный, но длинный. Я убрал всю обработку ошибок для краткости.
// Структура с данными для лоадера
typedef struct _MANUAL_INJECT
{
PVOID ImageBase;
PIMAGE_NT_HEADERS NtHeaders;
PIMAGE_BASE_RELOCATION BaseRelocation;
PIMAGE_IMPORT_DESCRIPTOR ImportDirectory;
pLoadLibraryA fnLoadLibraryA;
pGetProcAddress fnGetProcAddress;
} MANUAL_INJECT, * PMANUAL_INJECT;
// код лоадера, получает указатель на _MANUAL_INJECT
DWORD WINAPI LoadDll(PVOID p)
{
// пропущены объявления
ManualInject = (PMANUAL_INJECT)p;
pIBR = ManualInject->BaseRelocation;
// смещение загрузки модуля относительно ImageBase из файла
delta = (ULONGLONG)((LPBYTE)ManualInject->ImageBase - ManualInject->NtHeaders->OptionalHeader.ImageBase);
// Reloc'и
// Пока есть блоки...
while (pIBR->VirtualAddress)
{
// Если есть reloc'и
if (pIBR->SizeOfBlock >= sizeof(IMAGE_BASE_RELOCATION))
{
// Каждый reloc - это слово.
count = (pIBR->SizeOfBlock - sizeof(IMAGE_BASE_RELOCATION)) / sizeof(WORD);
list = (PWORD)(pIBR + 1);
for (i = 0; i < count; i++)
{
if (list[i])
{
ptr = (PULONGLONG)((LPBYTE)ManualInject->ImageBase + (pIBR->VirtualAddress + (list[i] & 0xFFF)));
// Патчим память!
*ptr += delta;
}
}
}
// Следующий блок
pIBR = (PIMAGE_BASE_RELOCATION)((LPBYTE)pIBR + pIBR->SizeOfBlock);
}
// Теперь разбираемся с импортами
pIID = ManualInject->ImportDirectory;
while (pIID->Characteristics)
{
OrigFirstThunk = (PIMAGE_THUNK_DATA)((LPBYTE)ManualInject->ImageBase + pIID->OriginalFirstThunk);
FirstThunk = (PIMAGE_THUNK_DATA)((LPBYTE)ManualInject->ImageBase + pIID->FirstThunk);
// Загрузим библиотеку. Тут важно, чтобы она была подписана MS!
hModule = ManualInject->fnLoadLibraryA((LPCSTR)ManualInject->ImageBase + pIID->Name);
while (OrigFirstThunk->u1.AddressOfData)
{
if (OrigFirstThunk->u1.Ordinal & IMAGE_ORDINAL_FLAG)
{
// Числовой импорт
Function = (ULONGLONG)ManualInject->fnGetProcAddress(hModule, (LPCSTR)(OrigFirstThunk->u1.Ordinal & 0xFFFF));
// Патчим!
FirstThunk->u1.Function = Function;
}
else
{
// Импорт по имени
pIBN = (PIMAGE_IMPORT_BY_NAME)((LPBYTE)ManualInject->ImageBase + OrigFirstThunk->u1.AddressOfData);
Function = (ULONGLONG)ManualInject->fnGetProcAddress(hModule, (LPCSTR)pIBN->Name);
// Патчим!
FirstThunk->u1.Function = Function;
}
OrigFirstThunk++;
FirstThunk++;
}
pIID++;
}
// Ищем DllMain
if (ManualInject->NtHeaders->OptionalHeader.AddressOfEntryPoint)
{
EntryPoint = (PDLL_MAIN)((LPBYTE)ManualInject->ImageBase + ManualInject->NtHeaders->OptionalHeader.AddressOfEntryPoint);
// И вызываем её!
return EntryPoint((HMODULE)ManualInject->ImageBase, DLL_PROCESS_ATTACH, NULL); // Call the entry point
}
return TRUE;
}
// Маркер конца кода лоадера
DWORD WINAPI LoadDllEnd()
{
return 0;
}
// Собственно injector
int Inject(DWORD pid, std::wstring dll)
{
// Нам нужны SE_DEBUG_NAME привилегии
if (OpenProcessToken((HANDLE)-1, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
tp.PrivilegeCount = 1;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
tp.Privileges[0].Luid.LowPart = 20;
tp.Privileges[0].Luid.HighPart = 0;
AdjustTokenPrivileges(hToken, FALSE, &tp, 0, NULL, NULL);
CloseHandle(hToken);
}
// Будем читать DLL
hFile = CreateFile(dll.c_str(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); // Open the DLL
FileSize = GetFileSize(hFile, NULL);
// Местный буфер для DLL
buffer = VirtualAlloc(NULL, FileSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
// Читаем DLL
ReadFile(hFile, buffer, FileSize, &read, NULL);
CloseHandle(hFile);
// Парсим DLL
pIDH = (PIMAGE_DOS_HEADER)buffer;
pINH = (PIMAGE_NT_HEADERS)((LPBYTE)buffer + pIDH->e_lfanew);
printf("nOpening target process.n");
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
// Теперь память в процессе под DLL
image = VirtualAllocEx(hProcess, NULL, pINH->OptionalHeader.SizeOfImage, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
// Скопируем хедеры
WriteProcessMemory(hProcess, image, buffer, pINH->OptionalHeader.SizeOfHeaders, NULL);
pISH = (PIMAGE_SECTION_HEADER)(pINH + 1);
// Теперь саму DLL, посекционно
for (i = 0; i < pINH->FileHeader.NumberOfSections; i++)
{
WriteProcessMemory(hProcess, (PVOID)((LPBYTE)image + pISH[i].VirtualAddress), (PVOID)((LPBYTE)buffer + pISH[i].PointerToRawData), pISH[i].SizeOfRawData, NULL);
// Если это код, защитим, чтобы DEP не ругался
if (pISH[i].Characteristics & IMAGE_SCN_CNT_CODE) {
VirtualProtectEx(hProcess, (PVOID)((LPBYTE)image + pISH[i].VirtualAddress), ((pISH[i].SizeOfRawData - 1) | 4095 + 1), PAGE_EXECUTE_READ, NULL);
}
}
// Теперь будем копировать loader
mem = VirtualAllocEx(hProcess, NULL, 4096, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); // Allocate memory for the loader code
// Заполним структуру для loader'а
memset(&ManualInject, 0, sizeof(MANUAL_INJECT));
ManualInject.ImageBase = image;
ManualInject.NtHeaders = (PIMAGE_NT_HEADERS)((LPBYTE)image + pIDH->e_lfanew);
ManualInject.BaseRelocation = (PIMAGE_BASE_RELOCATION)((LPBYTE)image + pINH->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC].VirtualAddress);
ManualInject.ImportDirectory = (PIMAGE_IMPORT_DESCRIPTOR)((LPBYTE)image + pINH->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
ManualInject.fnLoadLibraryA = LoadLibraryA;
ManualInject.fnGetProcAddress = GetProcAddress;
// Копируем loader и параметры
WriteProcessMemory(hProcess, mem, &ManualInject, sizeof(MANUAL_INJECT), NULL); // Write the loader information to target process
WriteProcessMemory(hProcess, (PVOID)((PMANUAL_INJECT)mem + 1), LoadDll, (ULONGLONG)LoadDllEnd - (ULONGLONG)LoadDll, NULL); // Write the loader code to target process
// Снова успокоим DEP
VirtualProtectEx(hProcess, (PVOID)((PMANUAL_INJECT)mem), (ULONGLONG)LoadDllEnd - (ULONGLONG)LoadDll + sizeof(MANUAL_INJECT), PAGE_EXECUTE_READ, NULL);
// Вызовем loader - поехали!
hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)((PMANUAL_INJECT)mem + 1), mem, 0, NULL); // Create a remote thread to execute the loader code
// Ждём, пока поток завершится
WaitForSingleObject(hThread, INFINITE);
GetExitCodeThread(hThread, &ExitCode);
CloseHandle(hThread);
VirtualFreeEx(hProcess, mem, 0, MEM_RELEASE);
CloseHandle(hProcess);
VirtualFree(buffer, 0, MEM_RELEASE);
return 0;
}
Если отладка загрузки DLL через LoadLibrary
была болью, то отлаживать вот это вот — 10/10 боли. Ни один дебаггер не понимает, что этот код — DLL, и не маппит проанализированную DLL с сырцами/PDB на код в процессе. Поэтому отладка без анализа. Приходится параллельно сопоставлять отлаживаемый код и проанализированный.
Отладка с помощью printf()
Альтернатива отладчику — логирование. И здесь бы оно очень подошло, потому что отладчик — боль. Проблема в том, что логирование — тоже боль. Процесс аудио подсистемы chrome не имеет прав на запись файлов (даже в Temp) и на создание ключей реестра — это из того, что я проверил.
Этот процесс точно имеет доступ к CoreAudio, но мне сходу не приходит в голову, как выводить логи при помощи аудио девайсов.
Изучая разные подсистемы, обнаружил, что мне дают создавать сокеты и подключаться к внешним ресурсам. Бинго, пишем логгер, который льёт данные в localhost:7777
и слушаем его через nc -kl 7777
.
Но это не главное. Главное — это работает!
Поиск chrome.exe
Осталось всего ничего — находить процесс хрома и внедряться в него. Это сделано при помощи ETW логов, которые, в частности, сообщают о создании процесса. Для них есть библиотека krabs. И отвратительная документация.
krabs::kernel_trace trace(L"My magic trace");
krabs::kernel::process_provider provider;
provider.add_on_event_callback([](const EVENT_RECORD& record, const krabs::trace_context& trace_context) {
krabs::schema schema(record, trace_context.schema_locator);
if (schema.event_opcode() == 1) { // процесс запускается
krabs::parser parser(schema);
DWORD pid = parser.parse<uint32_t>(L"ProcessId");
auto cmdline = GetProcessCommandLine(pid);
// А chrome ли ты?
if (cmdline.find(L"chrome") != std::wstring::npos) {
// А audio подсистема ли ты?
if (cmdline.find(L"--utility-sub-type=audio.mojom.AudioService") != std::wstring::npos) {
std::wcout << "Found process " << pid << ", injecting...n";
Inject(pid, L"ChromePatcherDll.dll");
}
}
}
});
trace.enable(provider);
trace.start();
Дополнительные главы
Подмена GetPosition
для всех аудиоустройств начинает мешать, когда Bluetooth наушники отключаются, и задержка пропадает. Опережение звука — куда большая проблема, чем запаздывание, и мы не хотим вручную каждый раз менять задержку. Поэтому нужно бы узнавать, к какому аудио-девайсу относится данный IAudioClock
, и настраивать задержку соответственно.
Это приводит к двум проблемам:
-
Нужна программа, настраивающая задержки аудиоустройств
-
Загруженная DLL должна знать, какому устройству принадлежит
IAudioClock
Если первая проблема решается довольно просто (см. код здесь), то вторая оказалась крепким орешком. СамIAudioClock
не предоставляет ровно никаких способов достать из негоIMMDevice
(у которого есть GetId
) или самid
.
Есть два способа решения этой проблемы.
Отследить построение IAudioClock
Это один из возможных вариантов сопоставления IAudioClock
-> IMMDevice.
Можно просто перехватить все вызовы создания IMMDevice
-> IAudioClient
-> IAudioClock
, и построить внутренние соответствия между ними.
Это, однако, приводит к ряду проблем. Во-первых, становится необходимо перехватить гораздо больше функций (IMMDevice::Activate
, IAudioClient::GetService
, Release
для всех трёх), и приходится отслеживать создание и удаление объектов, чтобы память не потекла.
Во-вторых, и это более важная проблема, нужно успеть внедрить DLL, пока аудио-устройства ещё не созданы. Практика показывает, что через ETW логи я не очень успеваю это делать.
Можно было бы пропатчить родительский процесс хрома, чтобы он создавал процессы с CREATE_SUSPENDED
, но это очень большой геморрой. И если приложение-инжектор упадёт, хром останется без звука.
Недокументированные подходы
// магия, не трогать
Логика подсказывает, что если IAudioClock
не будет знать, какому IAudioClient
он принадлежит, он не сможет вычислять положение в потоке. Значит, где-то внутри IAudioClock
содержится какая-то ссылка на IAudioClient
.
Если раскопать отладчиком, видно, что IAudioClient
действительно сохраняется в IAudioClock
:
Аналогично, если посмотреть на IAudioClient
, нам повезёт, и там сразу будет ссылка на Unicode строку с id
девайса:
Окей, чтобы хоть немножко повысить переносимость, давайте не будем фиксировать смещения, а поищем их в динамике:
// Храним смещения (в единицах указателей)
struct Offsets {
// Адрес клиента внутри часов
int clockToClientPtr = -1;
// Адрес строки с id внутри клиента
int clientToIdPtr = -1;
};
Offsets offsets;
void FillOffsets(IMMDevice* device, IAudioClient* client, IAudioClock* clock) {
// Ищем известный IAudioClient в IAudioClock
for (int i = 0; i < 100; ++i) {
if (*(((void**)clock) + i) == client) {
offsets.clockToClientPtr = i;
break;
}
}
LPWSTR id;
device->GetId(&id);
auto len = lstrlenW(id);
// Ищем известный id в IAudioClient
for (int i = 0; i < 100; ++i) {
LPWSTR ptr = *((LPWSTR*)client + i);
if (IsBadReadPtr(ptr, len * 2 + 2)) { // Если в вашем коде есть IsBadReadPtr, что-то не так
continue;
}
if (memcmp(id, ptr, len * 2) == 0) {
offsets.clientToIdPtr = i;
break;
}
}
CoTaskMemFree(id);
}
И дальше что-то такое:
if (offsets.clientToIdPtr != -1 && offsets.clockToClientPtr != -1) {
if (!IsBadReadPtr(*((void**)This + offsets.clockToClientPtr), offsets.clientToIdPtr * sizeof(void*))) {
void* clientPtr = *((void**)This + offsets.clockToClientPtr);
if (!IsBadReadPtr(*((void**)clientPtr + offsets.clientToIdPtr), 20)) {
LPWSTR idPtr = *((LPWSTR*)clientPtr + offsets.clientToIdPtr);
std::wstring idStr = idPtr;
clockToDeviceMap[This] = idStr;
myDeviceStr = &clockToDeviceMap[This];
}
}
}
Ужас, конечно, но работает.
Итог
В итоге я использовал оба подхода — если успели перехватить, записываем в словарь. Если не успели, используем подход с поиском клиента и id по смещениям.
Код разбросан по этому файлу.
Результаты
После патчинга видео и аудио синхронизировались идеально:
Так была исправлена неприятная проблема, и речь в Bluetooth наушниках теперь воспринимается отлично.
Работоспособность проверена только под последними версиями Win10 и Win11, на последнем же Chrome.
Links
-
Мой код.
-
Injector для Chrome
-
Ручное внедрение DLL (x86 версия, требует небольших доработок для x64)
-
Krabs
Многие, впервые подключив беспроводные наушники к Android телефону или ноутбуку с Windows 10, 8.1 или Windows 7, сталкиваются с тем, что звук в Bluetooth наушниках отстает в играх и видео от того, что происходит на экране, что требует решения.
В этой инструкции подробно о том, как исправить отставание звука в Bluetooth-наушниках, чем это может быть вызвано и дополнительная информация, которая может быть полезна в контексте рассматриваемой проблемы.
- Почему отстает звук в Bluetooth наушниках
- Что делать, если звук отстает в играх и видео на Android
- Решения в случае, если аудио по Bluetooth отстает в Windows
- Видео инструкция
Почему отстает звук в беспроводных Bluetooth наушниках
Прежде всего некоторые важные нюансы, касающиеся передачи аудио по Bluetooth, которые стоит знать и учитывать:
- Задержка при передаче звука по Bluetooth есть всегда: где-то отсутствие синхронизации явно заметно, где-то оно проявляется в меньшей степени и на него можно не обращать внимания.
- Время задержки может зависеть от конкретных устройств (смартфона, Bluetooth адаптера на ноутбуке, самих наушников), используемого профиля и кодека (SBC, aptX, LDAC и другие) для передачи аудио, настроек качества передаваемого звука.
При передаче звука по Bluetooth он специальным образом кодируется на передающем устройстве, затем передается по беспроводному каналу на наушники, где буферизируется, преобразуется из цифрового в аналоговый сигнал и только после этого вы его слышите.
Каждый из этапов может занимать определенное время, причем, если судить по тестам, даже первые два шага на некоторых смартфонах независимо от кодеков занимают около 500 миллисекунд (полсекунды), на что уже сложно не обратить внимания. Однако, во многих случаях у нас есть возможность сократить время задержки при передаче аудио по Bluetooth и уменьшить отставание звука от видео и игр.
Что делать, если звук в Bluetooth наушниках отстает на Android
При отставании звука от происходящего на экране на Android телефоне или планшете, вы можете попробовать следующие шаги:
- Проверить, какие кодеки поддерживаются вашими Bluetooth наушниками и попробовать использовать другие кодеки, например, aptX. Один из простых методов для этого — бесплатное приложение «Проверка для A2DP», доступное в Play Маркет https://play.google.com/store/apps/details?id=com.widget7.check.a2dp. После запуска приложения при подключенных наушниках нажмите «Check Bluetooth A2DP» и вы увидите текущий кодек (Current codec) и доступные поддерживаемые кодеки (Selectable codec) с возможностью выбора. При наличии других поддерживаемых наушниками кодеков, попробуйте выбрать их (нажатием по кодеку в разделе Selectable codecs). Есть и другой способ изменения кодека, о котором далее.
- При отставании звука по Bluetooth в интенсивных Android играх можно использовать другое приложение — BTmono, скачать которое можно в Play Маркет: https://play.google.com/store/apps/details?id=com.bedoig.BTmono. После запуска приложения нажмите в нем кнопку «On» (включить). Качество звука станет хуже, но задержка значительно уменьшится, что может позволить более комфортно играть в игры.
- Если включить режим разработчика на Android последних версий, в параметрах разработчика вы найдете возможность ручного выбора кодека Bluetooth (при условии, что он поддерживается наушниками) и других параметров передачи звука. Можно попробовать изменять кодек, качество аудио и посмотреть, как это повлияет на ситуацию.
- Еще один метод, который в редких случаях срабатывает — при подключенных наушниках Bluetooth зайти на телефоне в Настройки — Подключения — Bluetooth, нажать по кнопке настроек конкретных наушников и при наличии такой возможности оставить включенной только опцию передачи аудио/музыки, без возможности вызовов (звонков).
Если проблема возникает при воспроизведении скачанного на телефон видео и фильмов, можно использовать сторонние плееры, которые поддерживают настройку задержки аудио, например, это умеет делать медиа-плеер VLC.
Если ни один вариант не помог, но у вас есть возможность проверить ваш телефон с другими (в идеале — не из дешевых) беспроводными наушниками — попробуйте. Если в этом случае задержка станет незаметной, возможно, основной вклад в задержку вносят сами наушники.
Отставание аудио по Bluetooth в Windows 10, 8.1 и Windows 7
Если рассматриваемая проблема у вас появилась при подключении Bluetooth наушников к ноутбуку или компьютеру с Windows 10, 8.1 или Windows 7, можно попробовать такие методы решения:
- Если вам не требуется возможность связи по беспроводным наушникам с микрофоном, можно зайти в устройства записи и воспроизведения (Как зайти в «Устройства записи и воспроизведения» Windows 10) и если там на вкладках «Воспроизведение» и «Запись» есть «Наушники» и «Головной телефон» — отключить «Головной телефон» (правый клик — отключить).
- Там же, выбрав наушники на вкладке «Воспроизведение» откройте их свойства и проверьте все вкладки. Отключите любые включенные эффекты, а если на вкладке «Дополнительно» доступно уменьшение качества аудио, попробуйте использовать его.
- Зайдите в Панель управления — Устройства и принтеры, нажмите правой кнопкой мыши по вашим Bluetooth наушникам и откройте их свойства. На вкладке «Службы» попробуйте отключить все службы кроме «Приемник аудио» и применить настройки.
- Вы можете проверить поддерживаемые вашими наушниками и используемые в текущий момент кодеки Bluetooth с помощью программы Bluetooth Tweaker (официальный сайт — https://www.bluetoothgoodies.com/tweaker/, после установки обязательна перезагрузка). Программа платная, но позволяет посмотреть свойства одного из устройств бесплатно: выберите ваши наушники, нажмите «Refresh codec information» и в программе отобразятся поддерживаемые наушниками кодеки (Codec supported by device) и выбранный Windows кодек (Codec selected by Windows). В случаях, когда наушники поддерживают современные кодеки (например, aptX, LDAC), а выбирается стандартный SBC, причиной могут быть не те драйверы Bluetooth адаптера (стоит попробовать установить вручную более новые, а иногда, наоборот, помогают предыдущие версии), отсутствие поддержки со стороны самого адаптера, а в некоторых случаях — устаревшая ОС.
Также, по некоторым отзывам, для Bluetooth-адаптеров Intel 8260, 7265/3165/7260/3160 помогает установка драйверов Intel Bluetooth Audio. Причем эти драйверы отсутствуют на сайте Intel, но есть на сайте Dell (устанавливаются и на другие устройства).
В случае с указанными Wi-Fi/Bluetooth адаптерами Intel модель своего адаптера вы можете в диспетчере устройств в разделе «Сетевые адаптеры». Если у вас один из указанных адаптеров, а на ноутбуке установлена Windows 10, 8.1 или Windows 7 (при этом драйверы Bluetooth должны быть уже установлены):
- Для Intel 8260 загрузите драйвер со страницы https://www.dell.com/support/home/ru/ru/rubsdc/Drivers/DriversDetails?driverId=100J9&fileId=3546946146 (в качестве целевой системы там указана Windows 8.1, но работает и на других версиях ОС).
- Для Intel 7265/3165/7260/3160 загрузите файл со страницы https://www.dell.com/support/home/ru/ru/rubsdc/Drivers/DriversDetails?driverId=90WTD&fileId=3506730032
- Запустите скачанный файл и в открывшемся окне нажмите «Extract» (для распаковки файлов в выбранную папку) и распакуйте файлы.
- Из папки, куда были распакованы файлы, запустите файл «Intel Bluetooth Audio.msi» и выполните процесс установки.
- Перезагрузите компьютер и проверьте, была ли решена проблема со звуком по Bluetooth.
- Если ваши наушники поддерживают кодек aptX, дополнительно зайдите в их свойства в «Устройства записи и воспроизведения» и проверьте, появилась ли новая вкладка для включения этого кодека. Если да — включите его и примените настройки.
Важное примечание: иногда после указанных манипуляций качество звука изменяется не в лучшую сторону, например, появляются прерывания. Если вы с этим столкнулись, снова запустите файл установки, как в шаге 4, но в установщике выберите «Удалить». После удаления перезагрузите компьютер, звук вернется в исходное состояние.
Также как и в случае с Android — для скачанного видео вы можете настроить задержку аудио в проигрывателе, например в медиа-плеере VLC вы можете найти такую настройку в меню «Инструменты — Синхронизация дорожек».
И, если ни одно решение не оказалось полезным, помните, что и сами Bluetooth наушники могут создавать заметную задержку, в таком случае манипуляции в ОС Windows и с драйверами оказываются не применимы.
Видео инструкция
В случае, если ваш сценарий появления проблемы с отставанием звука в Bluetooth наушниках отличается от изложенных — опишите его в комментариях, по возможности с подробностями, будем разбираться.
Содержание
- Почему отстает звук в беспроводных Bluetooth наушниках
- Проблемы и пути решения
- Что делать с ПК, если в Bluetooth наушниках прерывается звук?
- Что делать со смартфоном, если пропадает звук в Блютуз наушниках?
- Прерывается звук
- Плохое качество звука
- Как сократить задержку Bluetooth-наушников?
Почему отстает звук в беспроводных Bluetooth наушниках
Прежде всего некоторые важные нюансы, касающиеся передачи аудио по Bluetooth, которые стоит знать и учитывать:
- Задержка при передаче звука по Bluetooth есть всегда: где-то отсутствие синхронизации явно заметно, где-то оно проявляется в меньшей степени и на него можно не обращать внимания.
- Время задержки может зависеть от конкретных устройств (смартфона, Bluetooth адаптера на ноутбуке, самих наушников), используемого профиля и кодека (SBC, aptX, LDAC и другие) для передачи аудио, настроек качества передаваемого звука.
При передаче звука по Bluetooth он специальным образом кодируется на передающем устройстве, затем передается по беспроводному каналу на наушники, где буферизируется, преобразуется из цифрового в аналоговый сигнал и только после этого вы его слышите.
Каждый из этапов может занимать определенное время, причем, если судить по тестам, даже первые два шага на некоторых смартфонах независимо от кодеков занимают около 500 миллисекунд (полсекунды), на что уже сложно не обратить внимания. Однако, во многих случаях у нас есть возможность сократить время задержки при передаче аудио по Bluetooth и уменьшить отставание звука от видео и игр.
Проблемы и пути решения
Проблемы со звуком в блютуз наушниках могут быть вызваны разными причинами:
- настройки телефона, ноутбука или компьютера;
- улучшатели звучания в ушах, которые перегружают процессор;
- плохой сигнал, помехой для Bluetooth может стать даже одежда, если телефон находится в кармане;
- не соответствие устройств. Некоторые девайсы адекватно взаимодействуют только со своими родственниками от того же производителя;
- разная версия Bluetooth;
- работающие рядом приборы с мощным электромагнитным излучением;
- перегрев процессора телефона, что часто случается при длительном просмотре видео;
- качество модуля блютуз для ПК.
Причины могут быть и другими, например, заводской брак ушей, либо слабенький передатчик блютуз сигнала.
Далее рассмотрим конкретные проблемы — прерывается или отстает звук в наушниках, либо качество звучания откровенно плохое. Для начала попробуйте сопряжение ушей с другими устройствами. Если они звучат нормально, значит проблема в источнике сигнала. Когда наушники выдают плохое качество передачи с любым устройством, то причина в них.
Что делать с ПК, если в Bluetooth наушниках прерывается звук?
1. Если при синхронизации с ПК в Bluetooth наушниках прерывается звук, негативное влияние на это может оказывать устаревшая версия операционной системы или самого аксессуара. В этой ситуации потребуется установка других драйверов. В ОС Windows для этого необходимо зайти через панель управления в «Диспетчер Устройств» в раздел «Звуковые устройства», далее найти подраздел «Блютуз» и запустить поиск необходимых драйверов, нажав на кнопку «Обновить». Если процедура обновления не принесет результатов и сигнал продолжит отставать, можно попробовать скачивать самостоятельно из интернета разные версии драйверов, устанавливать и проверять. Какая-то версия ПО может заработать, и вы лишите Bluetooth наушники задержки звука.
2. Если адаптер беспроводной связи вставлен в компьютере в задний порт USB, перенесите его в разъем на передней панели (при наличии). Еще можно купить специальный USB хаб с удлинителем и разместить его на столе.
3. На стабильность соединения и вероятность отставания сигнала часто влияют помехи от другой электроники, которая находится рядом: роутера, микроволновой печи, телевизора и т. д. Постарайтесь разнести приборы на большее расстояние от ПК.
Что делать со смартфоном, если пропадает звук в Блютуз наушниках?
Если пропадает звук в Блютуз наушниках либо немного отстает при подключении к телефону, стоит проверить правильность и целесообразность всех настроек:
1. Режим «Видимый для всех» на телефоне иногда снижает нагрузку на процессор.
2. В настройках Android версии 6.0 есть пункт «Передача по BT» в разделе «Разрешения приложений». В нём надо снять все галочки за исключением «Громкость» и нажать на «Изменение настроек» – «Не отключать».
3. Поднесите устройства в процессе воспроизведения друг к другу вплотную и поставьте на паузу. Может понадобиться несколько секунд для полноценной синхронизации.
4. Существуют специальные программы для ускорения работы мобильного телефона: Antutu CPU, SetCpu, Tegrak и многие другие. Возможно, смартфону просто не хватает мощности и это поможет.
5. Плохо заряженная аккумуляторная батарея — еще одна причина плохой связи. При низком уровне заряда большинство гаджетов автоматически снижают мощность процессора для экономии энергии, из-за чего может начать отставать воспроизведение.
Прерывается звук
Когда в bluetooth наушниках прерывается звук, также не комфортно смотреть видео и слушать песни. Плохое качество передачи звука в наушники, частые заикания преодолевается следующими мерами:
- Прежде всего, если звук в наушниках то пропадает, то появляется, перезагрузите устройства и выполните по новой блютуз соединение.
- На телефоне в настройках проверьте активность режима «Видимый для всех».
- Может помочь очистка памяти смартфона, с которого транслируется звукоряд. Также следует отключить работающие в фоновом режиме приложения.
- Подзарядите аккумуляторы смартфона и наушников.
- Не рекомендуется через блютуз наушники слушать композиции формата FLAC. Композиции с повышенным битрейтом может воспроизводится с микропаузами. Отдавайте предпочтение битрейту mp3 320 Кбит/сек.
- Может помочь в настройках медиаплеера смена параметров discret sound на wave out или наоборот.
Плохое качество звука
Плохое качество звучания при подключении блютуз наушников к персональному компьютеру чаще возникает из-за наличия в них микрофона.
Windows определяет Head Set двояко как:
- стереонаушники — Stereo;
- гарнитуру — Hands Free.
В этом случае в Windows задействован профиль HFP — при подключённом микрофоне можно слушать треки только в монорежиме. Для улучшения качества звука необходимо сменить профиль.
Это делается следующим образом:
- После подключения наушников к ПК входят в панель управления звуком.
- В появившемся окошке выбирают строку «Устройства воспроизведения».
- В новом окне bluetooth наушники отобразятся дважды как «Наушники» и «Головной телефон».
- Правой кнопкой мыши топают по графе «Наушники», а затем выбирают «Использовать по умолчанию» и подтверждают, нажав на «ОК».
- После всех манипуляций Head Set должны воспроизводить чистое, качественное стереозвучание.
Как сократить задержку Bluetooth-наушников?
В первую очередь, нужно убедиться, что вышеперечисленный причины не провоцируют задержку, а также попробовать использовать другой кодек. Если сменить его на более продвинутый, задержка будет занимать меньше времени. Чтобы это сделать, нужно следовать инструкции:
- Убедиться, что наушники используют кодек с потерями (с большой задержкой). В настройках Bluetooth необходимо найти в списке сопряженных устройств подключенные беспроводные наушники. Рядом с их названием будет отображаться название кодека. Например, SBC— аудиокодек с потерями, поэтому рекомендуется изменить его.
- Проверить, поддерживают ли наушники поддерживают другие кодеки (например, aptX или LDAC). Если устройство по умолчанию поддерживает только SBC, изменить его не получится.
- Активировать «Режим разработчика» в смартфоне и вручную изменить используемый кодек.
Если проблема осталась нерешенной, помогут следующие способы:
- Чтобы определить, в чем именно проблема, рекомендуется подключить наушники к другому устройству. Если задержка исчезла, значит проблема в смартфоне или кодеке. Если задержка звука осталось, скорее всего, проблема в самих наушниках.
- Рекомендуется использовать приложения, которые переправляют звуки с мобильного устройства на гарнитуру. Они могут ухудшать звук, но задержка станет менее заметной.
- В списке сопряженных устройств нужно найти подключенную гарнитуру и открыть ее настройки. По умолчанию наушники используются для аудио и вызовов. Необходимо отключить передачу звука на гарнитуру во время звонков и оставить только пункт «Аудио».
- В настройках беспроводного подключения необходимо установить режим «Видимый для всех».
Зачастую от задержки звука спасает повторное сопряжение или перезагрузка телефона. Нужно убедиться, что устройство не перегружено другими приложениями и процессами, которые могут ухудшать прием аудиоданных.
Источники
- https://myearphones.ru/instruktsii/otstaet-zvuk-v-blyutuz-naushnikah
- https://remontka.pro/bluetooth-headphones-audio-lags-sync/
- https://besprovodnik.ru/otstaet-zvuk-v-bluetooth-naushnikax/
- https://NaushnikIn.ru/sovety/pochemu-bluetooth-naushniki-zaikautsya
- https://1bluetooth.ru/blyutuz-naushnik/otstaet-zvuk-zaderzhka-i-preryvanie
- https://AndroidLime.ru/bluetooth-headphone-delay
Как сделать беспроводной звук лучше, а опыт использования приятнее. Вряд ли многие люди при выборе наушников или адаптера в первую очередь думают о кодеках — я не думал.
Что такое aptX и почему речь о нём
- Это аудио кодек. Говоря проще он уменьшает задержку и делает звук чище, становится больше деталей в сравнении с SBC и AAC;
- Присутствует не только в дорогих наушниках;
- Достаточный для повседневных целей: посмотреть фильм, послушать музыку онлайн с битрейтом 320 kbs;
- Не избыточный, менее труднодоступный в сравнении Aptx HD и LDAC;
- По сравнению с SBC и AAC разница есть и различима на слух, если слушать музыку хотя бы в 320kp или смотреть видео.
Проблемы начинаются когда нужно чтобы устройство использовало это кодек. Казалось бы: купил наушники, подключил и наслаждаешься звуком. Ведь о тебе уже подумали — нет.
Как начать пользоваться
На iPhone, iPad — никак. На Android зависит от устройства. На компьютерах Mac проблем не будет, даже относительно старые модели со встроенным Bluetooth поддерживаю Aptx. Есть нюанс — нужно следить за тем, через какой кодек Mac передает звук на беспроводное аудиоустройство.
Когда используется не одно устройство, допустим клавиатура и наушники Mac отдает приоритет первому подключенному устройству. Подключенные после него наушники не получат Aptx. Проверить это легко: держите Option, нажимаете на иконку Bluetooth в верхнем баре, выбираете устройство и смотрите через какой кодек оно работает.
Признаюсь, не знаю почему Mac так поступает. Существуют программы для принудительного выбора кодека, но без них можно обойтись. Отключить клавиатуру, например, физическим переключателем на ней, подключить аудиоустройство, затем включить.
Ситуация с Windows
«Куплю самый новый и дорогой адаптер от фирмы, которая у всех на слуху и в нём всё будет» — Не-а, не будет.
Сначала придется убить часы, чтобы найти информацию по каждому из них. Некоторые производители пишут: «Наш адаптер не умеет работать с этим кодеком» — это приятно, но так делают единицы. Чаще нигде ни слова, не важно, поддерживает он кодек или нет.
Решение
Aptx запатентован Qualcomm. Мне не ясно почему, но многие производители не выпускают адаптеры с его поддержкой. Нужен адаптер на чипе CSR8510 от Qualcomm. Не буду говорить за все варианты на рынке, но Windows 10 подхватывает большинство адаптеров на этом чипе и сторонних драйверов устанавливать не нужно. Aptx будет работать сразу. Не буду называть брендов, скажу, что цены варьируются от 150-250р. на Али и до 500-700 в магазинах.
Решение кажется очевидным, но не тогда, когда ты пытаешься выбрать адаптер из десятков брендовых и ноунеймов. Когда ни у каких из них не указана поддержка Aptx по-человечески, ты видишь только тонны негативных отзывов, по большей части, о комплектных драйверах, которые на практике устанавливать нет необходимости. Aptx на Windows есть, он работает и имеет смысл, следуй за белым кроликом, как говорится (за чипом Qualcomm).
Discover tried-and-true strategies vetted by our team of specialists
by Matthew Adams
Matthew is a freelancer who has produced a variety of articles on various topics related to technology. His main focus is the Windows OS and all the things… read more
Published on September 27, 2022
Reviewed by
Vlad Turiceanu
Passionate about technology, Windows, and everything that has a power button, he spent most of his time developing new skills and learning more about the tech world. Coming… read more
- Driver issues are the most common cause of Windows 10 Bluetooth audio stutter.
- Some users have confirmed disabling certain Bluetooth services can fix this issue.
- Driver updater software might also come in handy for fixing Bluetooth issues.
XINSTALL BY CLICKING THE DOWNLOAD FILE
This software will repair common computer errors, protect you from file loss, malware, hardware failure and optimize your PC for maximum performance. Fix PC issues and remove viruses now in 3 easy steps:
- Download Restoro PC Repair Tool that comes with Patented Technologies (patent available here).
- Click Start Scan to find Windows issues that could be causing PC problems.
- Click Repair All to fix issues affecting your computer’s security and performance
- Restoro has been downloaded by 0 readers this month.
Many users connect Bluetooth peripherals with their desktops or laptops. However, some users have posted on support forums about audio stuttering issues when using Bluetooth audio devices with their PCs. For example, one user said this in a forum post:
As of recent, when connecting any pair of Bluetooth headphones or devices, I would get stuttering problems when using Bluetooth headphones. The audio would frequently cut in and out randomly, and it would frequently disconnect, even when it was fully charged.
This guide will list down multiple solutions to help you resolve the Windows 10 Bluetooth audio stutter issue. But, first, let us check out the solutions.
Why is my Bluetooth audio glitching?
If this happens, you may have issues with your adapter, and if Bluetooth won’t turn on, it’s somewhat likely that there’s a driver problem.
Pairing issues can also cause sound problems, and if there’s no sound after a Bluetooth connection, your device might not be appropriately connected to your PC.
A few users reported that they can’t connect Bluetooth headphones at all, and this is most likely a driver issue, so updating or reinstalling your drivers should help.
How do I fix Bluetooth audio stutter in Windows 10?
- Why is my Bluetooth audio glitching?
- How do I fix Bluetooth audio stutter in Windows 10?
- 1. Update Bluetooth and audio drivers
- 2. Reinstall the Wi-Fi driver
- 3. Run the Bluetooth troubleshooter
- 4. Select the Disable all enhancements option
- 5. Select a different audio format setting
- 6. Reset Bluetooth headphones
- 7. Disable Remote Control and Hands-free telephony
- 8. Disable Bluetooth Collaboration
- 9. Connect your Bluetooth audio device with a USB extension cable
- 10. Reduce signal interference
- 11. Adjust the Roaming aggressiveness settings
- How can I fix Bluetooth audio stuttering on Windows 11?
- Why is my Bluetooth speaker crackling?
1. Update Bluetooth and audio drivers
- Right-click the Start icon then select Device Manager.
- Click the View button then select Show hidden devices.
- Here, expand the Bluetooth section, right-click the driver, and select Update driver.
- Select Search automatically for drivers.
- Next, expand the Sound, video, and game controllers section, right-click the audio driver, which might be Realtek, then select Update driver. Like before, select the Search automatically for drivers option.
- Reboot your computer in order to apply the changes made and fix the Bluetooth headphones stuttering in Windows 10.
You can manually update your PC’s audio and Bluetooth drivers, but using driver updater software is quicker. A driver updater utility will scan your PC and immediately list devices with outdated drivers.
Then you can download and install new drivers with the driver updater utility’s options.
Some of the most common Windows errors and bugs are a result of old or incompatible drivers. The lack of an up-to-date system can lead to lag, system errors or even BSoDs.
To avoid these types of problems, you can use an automatic tool that will find, download, and install the right driver version on your Windows PC in just a couple of clicks, and we strongly recommend DriverFix. Here’s how to do it:
- Download and install DriverFix.
- Launch the application.
- Wait for DriverFix to detect all your faulty drivers.
- The software will now show you all the drivers that have issues, and you just need to select the ones you’d liked fixed.
- Wait for DriverFix to download and install the newest drivers.
- Restart your PC for the changes to take effect.
DriverFix
Drivers will no longer create any problems if you download and use this powerful software today.
Disclaimer: this program needs to be upgraded from the free version in order to perform some specific actions.
2. Reinstall the Wi-Fi driver
- Right-click on the Start menu. Select Device Manager from this list.
- Expand Network adapters to expand that category.
- Right-click your PC’s wireless network adapter and select the Uninstall device option.
- Select the Delete the driver software for this device option on the Uninstall Device dialog box window.
- Click the Uninstall button.
- Select the Network Adapters category, and click the Action menu.
- Select the menu Scan for hardware changes option to reinstall the driver.
Once you reinstall the driver, check if Bluetooth audio stuttering still appears on Windows 10.
3. Run the Bluetooth troubleshooter
1. Open the Start menu.
2. Type troubleshoot in the search box and click on the first result to open Troubleshoot settings.
3. Click on Additional troubleshooters.
4. Select Bluetooth and click on Run the troubleshooter.
5. Follow the troubleshooter’s instructions.
Whenever you have any Bluetooth related issues on your Windows 10 device, you can run your built-in troubleshooter.
Some PC issues are hard to tackle, especially when it comes to corrupted repositories or missing Windows files. If you are having troubles fixing an error, your system may be partially broken.
We recommend installing Restoro, a tool that will scan your machine and identify what the fault is.
Click here to download and start repairing.
The Bluetooth troubleshooter can be accessed on your device via Settings in just a few steps. After you configure the troubleshooter to run, you need only wait for it to finish to ensure your problem is fixed.
4. Select the Disable all enhancements option
- Right-click the speaker (sound) icon on your system tray to open its context menu. Select Sounds.
- Right-click on your default audio device under the Playback tab, and click the Properties button.
- Switch to the Enhancements tab.
- Click the Disable all audio enhancements checkbox.
- Press the Apply and OK buttons to save the new settings.
After disabling audio enhancements, the Bluetooth audio stuttering on Windows 10 should be gone.
5. Select a different audio format setting
- Right-click the speaker (sound) icon on your system tray to open its context menu.
- Select Sounds.
- Right-click the default sound device on the Playback tab and select Properties.
- Click the Advanced tab.
- Then select the 16-bit 48000 Hz (DVD Quality) option on the Default Format drop-down menu.
- Select the Apply option.
- Click the OK button to close the window.
6. Reset Bluetooth headphones
If you need to fix Airpods stuttering in Windows 10, try resetting the headphones. Then, press and hold the headphone power button for several seconds.
When you see a blue light flash, release the power button. After that, you’ll need to pair your Bluetooth headphones again.
- FIX: Bluetooth speaker not detected in Windows 10/11
- Can’t remove Bluetooth device in Windows 10/11
- Full Fix: Can’t connect Bluetooth headphones to PC/laptop
- How to fix problems with Bose headphones on Windows 10/11
7. Disable Remote Control and Hands-free telephony
- Open the Run dialogue by pressing Win + R keys. Type control panel and press Enter.
- Click OK to open the Control Panel. Select Devices and Printers.
- Right-click your Bluetooth device and select Properties then click the Services tab.
- Deselect the Remote Control and Hands-free telephony checkboxes to disable them.
- Click Apply and OK to save the new options.
8. Disable Bluetooth Collaboration
- Right-click the Start menu button and select Device Manager.
- Double-click the Network adapters section of Device Manager.
- Click on your network adapter then select the Advanced tab.
- Next, select Bluetooth Collaboration on the Property list.
- Select Disable on the Value drop-down menu.
- Click OK to confirm the new setting.
A few users reported that this method fixed Bluetooth audio stuttering on Windows 10, so try it out.
9. Connect your Bluetooth audio device with a USB extension cable
If you have a USB extension cable handy, try connecting your Bluetooth device to your PC with a USB extension cable. Some users have said doing so can fix Bluetooth audio stuttering.
10. Reduce signal interference
Bluetooth audio stuttering can arise because of Wi-Fi interference from other devices. First, try moving your Bluetooth device closer to your PC.
Doing so will reduce potential obstructions generating the stuttering issue and ensure your device is within range.
Remove other Wi-Fi devices from the room your Bluetooth audio device is in. For example, things like tablets and phones might be interfering with your Bluetooth signal.
So, try moving all other Wi-Fi devices away from the speakers or headphones.
11. Adjust the Roaming aggressiveness settings
- Open Control Panel then click Network and Sharing Center.
- Select Wi-Fi in the Connections section.
- Click the Properties button then press the Configure button.
- Select the Advanced tab.
- Click on the Roaming Aggressiveness option.
- Select the Lowest option on the Value drop-down menu.
There are various potential fixes for Bluetooth audio stuttering in Windows 10. Many users have confirmed they’ve fixed audio stuttering with the resolutions above. So, those resolutions are worth a shot.
How can I fix Bluetooth audio stuttering on Windows 11?
Here are a few solutions you can apply to resolve the Bluetooth headphones’ sound-muffled problem in Windows 11. Note that they also work for the airpods choppy audio issue in Windows 11.
- Check if your Bluetooth driver is updated or not.
- Turn on and off the Airplane mode.
- Disconnect other Bluetooth devices.
- Repair your Bluetooth device.
- Run the Bluetooth troubleshooter on your PC.
- Restart the Bluetooth service on your Windows 11 PC.
- Reinstall the Bluetooth driver.
Why is my Bluetooth speaker crackling?
The wire of the Bluetooth speaker might be damaged, or there could be some issue with your wireless connection.
This could also arise due to a faulty connection, but nonetheless, you need to check your volume and impedance levels.
That is it from us in this guide. Let us know in the comments below which one of the above solutions helped you resolve the Windows 10 audio stutter issue.
Still having issues? Fix them with this tool:
SPONSORED
If the advices above haven’t solved your issue, your PC may experience deeper Windows problems. We recommend downloading this PC Repair tool (rated Great on TrustPilot.com) to easily address them. After installation, simply click the Start Scan button and then press on Repair All.
Newsletter
Discover tried-and-true strategies vetted by our team of specialists
by Matthew Adams
Matthew is a freelancer who has produced a variety of articles on various topics related to technology. His main focus is the Windows OS and all the things… read more
Published on September 27, 2022
Reviewed by
Vlad Turiceanu
Passionate about technology, Windows, and everything that has a power button, he spent most of his time developing new skills and learning more about the tech world. Coming… read more
- Driver issues are the most common cause of Windows 10 Bluetooth audio stutter.
- Some users have confirmed disabling certain Bluetooth services can fix this issue.
- Driver updater software might also come in handy for fixing Bluetooth issues.
XINSTALL BY CLICKING THE DOWNLOAD FILE
This software will repair common computer errors, protect you from file loss, malware, hardware failure and optimize your PC for maximum performance. Fix PC issues and remove viruses now in 3 easy steps:
- Download Restoro PC Repair Tool that comes with Patented Technologies (patent available here).
- Click Start Scan to find Windows issues that could be causing PC problems.
- Click Repair All to fix issues affecting your computer’s security and performance
- Restoro has been downloaded by 0 readers this month.
Many users connect Bluetooth peripherals with their desktops or laptops. However, some users have posted on support forums about audio stuttering issues when using Bluetooth audio devices with their PCs. For example, one user said this in a forum post:
As of recent, when connecting any pair of Bluetooth headphones or devices, I would get stuttering problems when using Bluetooth headphones. The audio would frequently cut in and out randomly, and it would frequently disconnect, even when it was fully charged.
This guide will list down multiple solutions to help you resolve the Windows 10 Bluetooth audio stutter issue. But, first, let us check out the solutions.
Why is my Bluetooth audio glitching?
If this happens, you may have issues with your adapter, and if Bluetooth won’t turn on, it’s somewhat likely that there’s a driver problem.
Pairing issues can also cause sound problems, and if there’s no sound after a Bluetooth connection, your device might not be appropriately connected to your PC.
A few users reported that they can’t connect Bluetooth headphones at all, and this is most likely a driver issue, so updating or reinstalling your drivers should help.
How do I fix Bluetooth audio stutter in Windows 10?
- Why is my Bluetooth audio glitching?
- How do I fix Bluetooth audio stutter in Windows 10?
- 1. Update Bluetooth and audio drivers
- 2. Reinstall the Wi-Fi driver
- 3. Run the Bluetooth troubleshooter
- 4. Select the Disable all enhancements option
- 5. Select a different audio format setting
- 6. Reset Bluetooth headphones
- 7. Disable Remote Control and Hands-free telephony
- 8. Disable Bluetooth Collaboration
- 9. Connect your Bluetooth audio device with a USB extension cable
- 10. Reduce signal interference
- 11. Adjust the Roaming aggressiveness settings
- How can I fix Bluetooth audio stuttering on Windows 11?
- Why is my Bluetooth speaker crackling?
1. Update Bluetooth and audio drivers
- Right-click the Start icon then select Device Manager.
- Click the View button then select Show hidden devices.
- Here, expand the Bluetooth section, right-click the driver, and select Update driver.
- Select Search automatically for drivers.
- Next, expand the Sound, video, and game controllers section, right-click the audio driver, which might be Realtek, then select Update driver. Like before, select the Search automatically for drivers option.
- Reboot your computer in order to apply the changes made and fix the Bluetooth headphones stuttering in Windows 10.
You can manually update your PC’s audio and Bluetooth drivers, but using driver updater software is quicker. A driver updater utility will scan your PC and immediately list devices with outdated drivers.
Then you can download and install new drivers with the driver updater utility’s options.
Some of the most common Windows errors and bugs are a result of old or incompatible drivers. The lack of an up-to-date system can lead to lag, system errors or even BSoDs.
To avoid these types of problems, you can use an automatic tool that will find, download, and install the right driver version on your Windows PC in just a couple of clicks, and we strongly recommend DriverFix. Here’s how to do it:
- Download and install DriverFix.
- Launch the application.
- Wait for DriverFix to detect all your faulty drivers.
- The software will now show you all the drivers that have issues, and you just need to select the ones you’d liked fixed.
- Wait for DriverFix to download and install the newest drivers.
- Restart your PC for the changes to take effect.
DriverFix
Drivers will no longer create any problems if you download and use this powerful software today.
Disclaimer: this program needs to be upgraded from the free version in order to perform some specific actions.
2. Reinstall the Wi-Fi driver
- Right-click on the Start menu. Select Device Manager from this list.
- Expand Network adapters to expand that category.
- Right-click your PC’s wireless network adapter and select the Uninstall device option.
- Select the Delete the driver software for this device option on the Uninstall Device dialog box window.
- Click the Uninstall button.
- Select the Network Adapters category, and click the Action menu.
- Select the menu Scan for hardware changes option to reinstall the driver.
Once you reinstall the driver, check if Bluetooth audio stuttering still appears on Windows 10.
3. Run the Bluetooth troubleshooter
1. Open the Start menu.
2. Type troubleshoot in the search box and click on the first result to open Troubleshoot settings.
3. Click on Additional troubleshooters.
4. Select Bluetooth and click on Run the troubleshooter.
5. Follow the troubleshooter’s instructions.
Whenever you have any Bluetooth related issues on your Windows 10 device, you can run your built-in troubleshooter.
Some PC issues are hard to tackle, especially when it comes to corrupted repositories or missing Windows files. If you are having troubles fixing an error, your system may be partially broken.
We recommend installing Restoro, a tool that will scan your machine and identify what the fault is.
Click here to download and start repairing.
The Bluetooth troubleshooter can be accessed on your device via Settings in just a few steps. After you configure the troubleshooter to run, you need only wait for it to finish to ensure your problem is fixed.
4. Select the Disable all enhancements option
- Right-click the speaker (sound) icon on your system tray to open its context menu. Select Sounds.
- Right-click on your default audio device under the Playback tab, and click the Properties button.
- Switch to the Enhancements tab.
- Click the Disable all audio enhancements checkbox.
- Press the Apply and OK buttons to save the new settings.
After disabling audio enhancements, the Bluetooth audio stuttering on Windows 10 should be gone.
5. Select a different audio format setting
- Right-click the speaker (sound) icon on your system tray to open its context menu.
- Select Sounds.
- Right-click the default sound device on the Playback tab and select Properties.
- Click the Advanced tab.
- Then select the 16-bit 48000 Hz (DVD Quality) option on the Default Format drop-down menu.
- Select the Apply option.
- Click the OK button to close the window.
6. Reset Bluetooth headphones
If you need to fix Airpods stuttering in Windows 10, try resetting the headphones. Then, press and hold the headphone power button for several seconds.
When you see a blue light flash, release the power button. After that, you’ll need to pair your Bluetooth headphones again.
- FIX: Bluetooth speaker not detected in Windows 10/11
- Can’t remove Bluetooth device in Windows 10/11
- Full Fix: Can’t connect Bluetooth headphones to PC/laptop
- How to fix problems with Bose headphones on Windows 10/11
7. Disable Remote Control and Hands-free telephony
- Open the Run dialogue by pressing Win + R keys. Type control panel and press Enter.
- Click OK to open the Control Panel. Select Devices and Printers.
- Right-click your Bluetooth device and select Properties then click the Services tab.
- Deselect the Remote Control and Hands-free telephony checkboxes to disable them.
- Click Apply and OK to save the new options.
8. Disable Bluetooth Collaboration
- Right-click the Start menu button and select Device Manager.
- Double-click the Network adapters section of Device Manager.
- Click on your network adapter then select the Advanced tab.
- Next, select Bluetooth Collaboration on the Property list.
- Select Disable on the Value drop-down menu.
- Click OK to confirm the new setting.
A few users reported that this method fixed Bluetooth audio stuttering on Windows 10, so try it out.
9. Connect your Bluetooth audio device with a USB extension cable
If you have a USB extension cable handy, try connecting your Bluetooth device to your PC with a USB extension cable. Some users have said doing so can fix Bluetooth audio stuttering.
10. Reduce signal interference
Bluetooth audio stuttering can arise because of Wi-Fi interference from other devices. First, try moving your Bluetooth device closer to your PC.
Doing so will reduce potential obstructions generating the stuttering issue and ensure your device is within range.
Remove other Wi-Fi devices from the room your Bluetooth audio device is in. For example, things like tablets and phones might be interfering with your Bluetooth signal.
So, try moving all other Wi-Fi devices away from the speakers or headphones.
11. Adjust the Roaming aggressiveness settings
- Open Control Panel then click Network and Sharing Center.
- Select Wi-Fi in the Connections section.
- Click the Properties button then press the Configure button.
- Select the Advanced tab.
- Click on the Roaming Aggressiveness option.
- Select the Lowest option on the Value drop-down menu.
There are various potential fixes for Bluetooth audio stuttering in Windows 10. Many users have confirmed they’ve fixed audio stuttering with the resolutions above. So, those resolutions are worth a shot.
How can I fix Bluetooth audio stuttering on Windows 11?
Here are a few solutions you can apply to resolve the Bluetooth headphones’ sound-muffled problem in Windows 11. Note that they also work for the airpods choppy audio issue in Windows 11.
- Check if your Bluetooth driver is updated or not.
- Turn on and off the Airplane mode.
- Disconnect other Bluetooth devices.
- Repair your Bluetooth device.
- Run the Bluetooth troubleshooter on your PC.
- Restart the Bluetooth service on your Windows 11 PC.
- Reinstall the Bluetooth driver.
Why is my Bluetooth speaker crackling?
The wire of the Bluetooth speaker might be damaged, or there could be some issue with your wireless connection.
This could also arise due to a faulty connection, but nonetheless, you need to check your volume and impedance levels.
That is it from us in this guide. Let us know in the comments below which one of the above solutions helped you resolve the Windows 10 audio stutter issue.
Still having issues? Fix them with this tool:
SPONSORED
If the advices above haven’t solved your issue, your PC may experience deeper Windows problems. We recommend downloading this PC Repair tool (rated Great on TrustPilot.com) to easily address them. After installation, simply click the Start Scan button and then press on Repair All.
Newsletter
Благодаря технологии Bluetooth проводные наушники устарели. Однако, у наушников Bluetooth есть определенные проблемы, и одной из основных проблем является заикание звука. Это означает, что наушники подключаются к компьютеру, но вы не слышите плавного воспроизведения голоса. Вместо этого звук прерывается или заикается, и вы даже можете столкнуться с автоматическим отключением через короткое время.
Чтобы решить проблемы с заиканием звука Bluetooth, вы можете использовать советы, перечисленные ниже.
Устранение проблем с заиканием звука Bluetooth в Windows 10
Есть четыре основных шага для устранения проблем с заиканием звука Bluetooth в Windows 10, три из которых связаны с использованием встроенных настроек и инструментов Windows, а последний метод предполагает использование стороннего инструмента.
Давайте сначала попробуем со встроенными опциями Windows.
Используйте средство устранения неполадок Bluetooth
Microsoft верит в самодиагностику и самовосстановление, это реализуется в форме нескольких средств устранения неполадок, которые сканируют ваш компьютер, выявляют ошибки и исправляют их.
Одно из таких средств устранения неполадок предназначено для выявления и устранения проблем с Bluetooth, и его можно запустить, выполнив следующие действия:
- Нажмите клавиши Win + I, чтобы открыть окно настроек.
- Среди различных вариантов выберите «Обновление и безопасность».
- Откроется новое окно, в котором вы должны нажать на параметр «Устранение неполадок» на левой панели.
- С правой стороны нажмите ссылку Дополнительные средства устранения неполадок и найдите Bluetooth в разделе «Поиск и устранение других проблем».
- Затем нажмите «Запустить средство устранения неполадок» и следуйте инструкциям на экране.
- Наконец, перезагрузите компьютер и проверьте, решена ли проблема.
Отключите улучшение звука
Следующим шагом, который необходимо выполнить, если средство устранения неполадок Bluetooth не может решить проблему, – отключить параметр «Улучшения звука» в Windows 10. Эти улучшения предназначены для улучшения качества звука, но иногда возникают проблемы совместимости с определенными типами гарнитур.
Чтобы отключить их, выполните следующие действия:
- Нажмите Win + R на клавиатуре, чтобы открыть окно «Выполнить».
- В текстовом поле введите
mmsys.cpl
и нажмите Enter. - Откроется новое окно, отображающее настройки, связанные со звуком.
- На первой вкладке, обозначенной как Воспроизведение, вы найдете список динамиков и устройств. Устройство, отмеченное зеленой галочкой в кружке, является вашим текущим устройством по умолчанию.
- Щелкните правой кнопкой мыши текущее устройство по умолчанию и в контекстном меню выберите «Свойства».
- Откроется новое окно, в котором вы должны щелкнуть вкладку Дополнительно и снять флажок «Включить дополнительные средства звука».
- Нажмите Применить, а затем кнопку ОК и выйдите из всех остальных открытых окон.
- Перезагрузите компьютер и проверьте, возникают ли проблемы с зависанием звука Bluetooth в Windows 10.
Измените аудиоформат
Если проблема не решена, есть ещё один параметр, который вы можете изменить для её решения, а именно изменение аудиоформатов на вашем ПК.
Вот шаги для этого:
- Откройте окно «Выполнить» на своём компьютере, нажав Win + R на клавиатуре.
- Введите
mmsys.cpl
и нажмите Enter. - Откроется новое окно, в котором будут отображаться все динамики, подключенные к вашему компьютеру.
- Щелкните правой кнопкой мыши динамик с зеленой галочкой и кружком и выберите «Свойства» в контекстном меню.
- Откроется новое окно, в котором вам нужно щелкнуть вкладку «Дополнительно».
- Под заголовком «Формат по умолчанию» щелкните раскрывающийся список и выберите 16 бит, 48000 Гц, а затем нажмите Применить и ОК.
- Теперь проверьте, решена ли ваша проблема, или следуйте инструкциям выше, выберите другой формат и проверьте ещё раз.
Обновите аудиодрайверы
Последний способ решить проблему заикания звука Bluetooth в Windows 10 – это использовать стороннее программное обеспечение для обновления драйверов в Windows 10. Такое приложение предназначено для сканирования всех драйверов в вашей системе и замены всех устаревших, отсутствующих и поврежденных драйверов на обновленные и наиболее совместимые, доступные в Интернете.
С обновленными драйверами вы обнаружите заметные изменения в своей системе с точки зрения повышения производительности.
Как исправить проблемы со звуком Bluetooth в Windows 10
Нет смысла держать Bluetooth-наушники или динамики, если вы не можете наслаждаться с ними безупречной музыкой. Предполагается, что музыка оказывает успокаивающее и расслабляющее действие, но из-за проблем с заиканием звука Bluetooth в Windows 10 это полностью изменит эффект и вызовет только раздражение.
Вышеупомянутые четыре метода могут помочь решить ваши проблемы.