Когда я начинаю запись экрана с помощью MediaProjection API, каждый раз, когда
появляется системное уведомление «Защита совместного использования экрана»,
запись на этот момент становится черной. В это время на экране не отображаются поля пароля или защищенные
окна.
Информация об устройстве
- Версия Android: 15/16
- targetSdk: 33
Запрос разрешения
Код: Выделить всё
val config = MediaProjectionConfig.createConfigForDefaultDisplay()
val permissionIntent = mediaProjectionManager.createScreenCaptureIntent(config)
startActivityForResult(permissionIntent, SCREEN_RECORD_REQUEST_CODE)
Код: Выделить всё
mVirtualDisplay = mMediaProjection?.createVirtualDisplay(
"ScreenRecorder",
mScreenWidth,
mScreenHeight,
mScreenDensity,
DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
mMediaRecorder?.surface,
null,
null
)
Код: Выделить всё
mMediaProjection?.registerCallback(object : MediaProjection.Callback() {
override fun onCapturedContentVisibilityChanged(isVisible: Boolean) {
Log.d(TAG, "isVisible=$isVisible") // Always returns TRUE
}
}, handler)
В таких приложениях, как XRecorder и AZ Screen Recorder, НЕ возникает проблема с черным
экраном на одном и том же устройстве. Они также выбирают «весь экран», но
запись остается плавной, без черных рамок при появлении системного
уведомления.
Вопрос
- Почему запись становится черной при появлении системного уведомления.
- Как предотвратить появление черного экрана во время наложения/уведомления системы.
Подробнее здесь: https://stackoverflow.com/questions/798 ... otificatio
Мобильная версия