Я использую 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 в качестве ширины и высоты. что мне не хватает?
введите описание изображения здесь