aspect-ratioexoplayer

How can I scale video in ExoPlayer-V2 - Play Video In Full Screen


I am playing video from URL on Exoplayer, it stretching the video on resizing/on using resize_mode as I have mentioned in layout file using this I am not able to maintain the aspect ratio of video.

I want to do scale type CENTER_CROP like we do in TextureSurface as mentioned in image2 but I am getting output as image1

I have tried following example

Exoplayer Demo Example

My Output (Img 1) and Expected Output (Img 2)

enter image description here

exoplayer layout code

  <com.google.android.exoplayer2.ui.SimpleExoPlayerView
      android:id="@+id/player_view"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:resize_mode="fill" />

With this line app:resize_mode="fill" it fit the video in screen but stretch vertically, So how can I solve this .


Solution

  • Following lines helped me to play video in full-screen mode.

    Changing app:resize_mode in layout file helps but it stretches the video as mentioned in the question.

    <com.google.android.exoplayer2.ui.PlayerView
          android:layout_width="match_parent"
          app:resize_mode="...."
          android:layout_height="match_parent" />
    

    Try changing AspectRatioFrameLayout to FILL,FIT,ZOOM... as per requirement,below code worked for me.

    exoVideoPlayerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL);
    

    Below lines will ensure that aspect ratio is correctly maintained even for 4:3 videos.

    exoPlayer.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FIT);
    

    changing VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING in exoplayer helps in the cropping & scaling the video as mentioned.