Intereting Posts
Обнаруживать телефон Android через Javascript / jQuery Настройка Google Cloud Messenging (GCM) с помощью простой службы уведомлений Amazon Web Services (AWS) (SNS) Как использовать Intent.ACTION_APP_ERROR как средство для «обратной связи» в Android? Как читать входящее сообщение с помощью службы в фоновом режиме в android? Как установить размер векторного изображения внутри кнопки в Android? Не найден ресурс, который соответствует указанному имени '@ style / Theme.AppCompat.Light' Возможно ли создать таблицу sqlite во время выполнения на основе количества элементов в массиве Разница между потоком пользовательского интерфейса и рабочим потоком в Android? Android – программно изменяет состояние переключателя без запуска OnCheckChanged прослушивателя Закрытие клавиатуры Android EditText, когда я нажму второй раз Определение требований к питанию для бесконтактной смарт-карты на Java. Как создать библиотеку в Github и использовать ее через зависимости gradle в Android Studio Есть ли документальный способ, в Android 2.x, для проверки нескольких SD-карт для контента? Как получить категорию приложения с именем пакета Ошибка в настройке pjsip для Android

Как достичь 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);