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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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