Страницы

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

суббота, 11 января 2020 г.

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

#java #android #video #glsurfaceview



Красным это видео. Черным это размер экрана телефона. Я использую SurfaceView.

Как мне подогнать видео под размер экрана. орентировываясь по ширине Экрана телефона.
Сохраняю пропорции. 

В ImageView все просто. Добавил картинку и она сама с сохранением пропорций отображается.
    


Ответы

Ответ 1



Если вы хотите использовать именно 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(); } } });

Ответ 2



Для видео лучше брать специальную вюху. Посмотрите сюда VideoView

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

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