Решение проблемОпубликовано: 2 мин чтения

Чёрный экран при трансляции экрана Android: причины и решения

Почему scrcpy, ADBKit и другие инструменты на ADB показывают чёрный экран в отдельных приложениях или целиком: от FLAG_SECURE и защищённого видео до кодеков и блокировки.

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

Чёрный только в некоторых приложениях

Почти всегда это сделано намеренно. Приложения могут помечать свои окна как защищённые (FLAG_SECURE), и Android скрывает их от скриншотов, записи экрана и трансляции. Пока такое приложение открыто, вы видите чёрный экран, а когда выходите из него, картинка возвращается.

Типичные примеры:

  • Банковские и платёжные приложения, кошельки
  • Менеджеры паролей и приложения-аутентификаторы
  • Netflix, Disney+, Prime Video и другие платные стриминговые сервисы (защищённое видео)
  • Некоторые мессенджеры в приватных чатах или режиме инкогнито
  • Экраны ввода PIN-кода или пароля

Ни в ADB, ни в программе трансляции нет настройки, которая это меняет, и это хорошо. Проверяйте такие экраны прямо на телефоне.

Чёрный весь экран

Телефон заблокирован или экран погас

Некоторые телефоны перестают отправлять кадры, когда экран выключен или показан экран блокировки. Разблокируйте телефон и включите экран. На время работы включите «Не выключать экран» (Stay awake) в разделе «Для разработчиков».

Xiaomi, Redmi и POCO

Без «Отладки по USB (Настройки безопасности)» (USB debugging (Security settings)) телефоны Xiaomi могут показывать экран, но блокировать ввод, а некоторые модели ещё и ограничивают захват. Включите этот пункт, как описано в статье отладка по USB на Xiaomi и настройки безопасности.

Сбой видеокодека

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

  • scrcpy: попробуйте scrcpy --video-codec=h265 или уменьшите размер командой scrcpy -m 1024.
  • ADBKit: откройте More tools › Stream quality и выберите 1080p или 720p вместо родного разрешения.

Экран записывает другое приложение

Обычно одновременно может работать только одна запись экрана. Остановите другие приложения записи или трансляции на телефоне и прервите adb shell screenrecord, если запускали его.

Рабочий профиль или политика устройства

На телефонах, которыми управляет компания, захват экрана может быть полностью запрещён. Это касается всех программ трансляции.

Чёрное только видео, а меню видно

Это защищённое (DRM) видео, как описано выше. Меню и остальная часть приложения захватываются нормально, а область видео остаётся чёрной. Скриншоты через adb exec-out screencap -p ведут себя так же.

Короткий чек-лист

  1. Чёрный экран только в одном приложении? Оно защищено. Проверяйте этот экран на самом телефоне.
  2. Чёрный весь экран? Разблокируйте телефон и включите экран.
  3. Xiaomi? Включите «Отладку по USB (Настройки безопасности)».
  4. Всё ещё чёрный? Снизьте качество трансляции или смените кодек.
  5. Остановите другие записи экрана и приложения трансляции.

Больше советов в статье советы по трансляции экрана Android.