Intereting Posts
Удалить ошибку из EditText Как использовать RenderScript с SurfaceView / View Что именно делает команда «Исправить свойства проекта»? Включить .so-библиотеку в apk в студии android Способ спрятать программную клавиатуру, если не использовать функции edittext в android Не может найти точное местоположение в android Android SimpleOnGestureListener.onFling получает нулевой MotionEvent Создание основной операции, которая НЕ отображается в списке запуска Фон стиля AppCompat, распространяемый на изображение в ToolBar Андроид, использующий Renderscript для размытия эффектов, вызывает A / libc: фатальный сигнал 7 (SIGBUS), код 2, ошибка addr 0x9e6fa000 in tid 482 (AsyncTask # 1) Android IAB: «Ошибка обновления инвентаря (запрос цен на предметы)» Ошибка разработчика GetExtractedText на неактивном предупреждении InputConnection на Android Вид получает свое доступное состояние (нажатие и т. Д.) Из его родительского ImageView и заданное положение Как остановить анимацию в конце цикла?

Как достичь setVideoScalingMode для ранних версий Android

MediaPlayer.setVideoScalingMode (режим int) хорош для API 16 и выше, позволяя выбирать между VIDEO_SCALING_MODE_SCALE_TO_FIT и VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING .

Есть ли способ достичь той же функциональности для Android до API 16?

Я попытался установить размеры SurfaceView используемые MediaPlayer, но MediaPlayer SurfaceView исходное видео в соответствии с любыми измерениями SurfaceView .

Solutions Collecting From Web of "Как достичь setVideoScalingMode для ранних версий Android"

Поставленная с той же проблемой, получите решение с этой статьей http://blog.lemberg.co.uk/surface-view-video-cropping Но с небольшими изменениями: По умолчанию TextureView уже имеет масштаб, чтобы сделать соотношение сторон экрана в соответствии с графикой, Поэтому вы получаете левую / правую или верхнюю / нижнюю полосы для видео высокой / широкой. И когда вы используете подход из статьи, вы получаете масштаб шкалы TextureView +, вычисленный updateTextureViewSize, поэтому очень крупный индекс. Мое решение этой проблемы заключается в вычислении относительного значения шкалы:

 float div = Math.max(scaleX,scaleY)-Math.min(scaleX, scaleY); matrix.setScale(1+div,1+div,pivotPointX,pivotPointY); 

вместо

  matrix.setScale(scaleX, scaleY, pivotPointX, pivotPointY);