Android.media.ImageReader с MediaProjection зависает на Android 14Android

Форум для тех, кто программирует под Android
Anonymous
Android.media.ImageReader с MediaProjection зависает на Android 14

Сообщение Anonymous »

Я использую MediaProjection для совместного использования экрана с помощью WebRTC. После обновления моего Pixel 7 Pro до Android 14 он больше не снимает кадры должным образом. В более старых версиях Android все работало без проблем.
Поведение:
Начинается захват экрана, и я получаю несколько кадров (40–50), но новых кадров не появляется. захвачен. Нет ошибок или «остановочных» обратных вызовов; обратный вызов onImageAvailableListener просто перестает вызываться.
Ожидаемое поведение:
При изменении содержимого экрана постоянно захватываются новые кадры.
Для дальнейшего изучения, Я создал пустой проект с минимальным кодом, необходимым для запуска захвата экрана. Код приведен ниже.
Я обнаружил, что эта проблема, по-видимому, связана с ImageReader. При подключении SurfaceView к VirtualDisplay кадры доставляются стабильно.
Кто-нибудь сталкивался с подобной проблемой с MediaProjection на Android 14? Существует ли известный обходной путь или решение этой проблемы?
class MediaProjectionCapturer(private val mediaProjectionData: Intent) {

private var imageCounter = 0

private val imageReaderMaxImages = 2

private lateinit var virtualDisplay: VirtualDisplay

private val listenerHandler : Handler

init {
val listenerHandlerThread = HandlerThread(TAG)
listenerHandlerThread.start()
listenerHandler = Handler(listenerHandlerThread.looper)
}

fun start(context: Context, displaySurface: Surface?) { // ❗❗❗

Подробнее здесь: https://stackoverflow.com/questions/786 ... android-14

Вернуться в «Android»