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)
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 .
ExoPlayer is the video player running in Android YouTube, Netflix, Amazon media player for Prime, HotStar, and many other popular and robust apps. Good documentation and tutorials. It's free!
ExoPlayer provides a way of setting a max bitrate using DefaultTrackSelector#Parameters . You can use setMaxVideoBitrate or setMaxVideoSize to limit the max bitrate. In this way, it works in many cases.
Following two lines helped me to play video in full-screen mode.
Using app:resize_mode
in layout file this somehow help but it stretches the video as mentioned in the question picture.
<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 yout requirement, changing below line worked for me.
exoVideoPlayerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL);
Bellow line will ensure that aspect ratio is correctly maintained even for 4:3 videos.
exoPlayer.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FIT);
Also you can try changing VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING
in exoplayer
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With