Поведение:
Начинается захват экрана, и я получаю несколько кадров (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