Страницы

Поиск по вопросам

понедельник, 4 марта 2019 г.

Как сжать видео под размер экрана.

Красным это видео. Черным это размер экрана телефона. Я использую SurfaceView.
Как мне подогнать видео под размер экрана. орентировываясь по ширине Экрана телефона. Сохраняю пропорции.
В ImageView все просто. Добавил картинку и она сама с сохранением пропорций отображается.


Ответ

Если вы хотите использовать именно SurfaceView, то стоит сделать так:
Например у нас есть такая разметка:

Подключаем необходимые нам элементы:
surfaceViewFrame = (SurfaceView) findViewById(R.id.surfaceViewFrame); player = new MediaPlayer(); player.setDisplay(holder); А теперь немного расчетов добавим в ваш MediaPlayer в onPreparedListener и пересчитаем высоту и ширину видео фрагмента в соответствии с текущими размерами экрана, избежав растягивания.
player.setOnPreparedListener(new OnPreparedListener() { @Override public void onPrepared (MediaPlayer mp){ int videoWidth = player.getVideoWidth(); int videoHeight = player.getVideoHeight(); float videoProportion = (float) videoWidth / (float) videoHeight; int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); int screenHeight = getWindowManager().getDefaultDisplay().getHeight(); float screenProportion = (float) screenWidth / (float) screenHeight; android.view.ViewGroup.LayoutParams lp = surfaceViewFrame.getLayoutParams();
if (videoProportion > screenProportion) { lp.width = screenWidth; lp.height = (int) ((float) screenWidth / videoProportion); } else { lp.width = (int) (videoProportion * (float) screenHeight); lp.height = screenHeight; } surfaceViewFrame.setLayoutParams(lp);
if (!player.isPlaying()) { player.start(); } } });

Комментариев нет:

Отправить комментарий