Использование MediaRecorder в Android для записи всего экрана под любое разрешение телефона - PullRequest
0 голосов
/ 04 августа 2020

Я использую MediaRecorder с Kotlin для захвата всего экрана, похоже, что экран нужно захватить с его соотношением, что имеет смысл. Я пытаюсь вычислить соотношение, а затем высоту ширины, которую я стремлюсь к (1280).

Я использую windowManager.defaultDisplay.getMetrics(metrics), чтобы получить разрешение экрана, затем val screenRatio : Double = (metrics.widthPixels.toDouble() / metrics.heightPixels.toDouble()) для соотношения.

val height : Double = 1280 / screenRatio;, чтобы получить высоту.

Я использую mMediaRecorder?.setVideoSize(1280 , height ) для записи, но на некоторых телефонах я получаю черные линии по бокам, как на картинке

Я также инициализирую ширину и высота в

mMediaProjection?.createVirtualDisplay("MainActivity", width, height, mScreenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mMediaRecorder?.getSurface(), null, null)

Я вижу тот же результат даже при использовании metrics.widthPixels и metrics.heightPixels в качестве ширины и высоты. что мне не хватает?

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...