Je lis une vidéo de URL
sur Exoplayer
, cela étire la vidéo lors du redimensionnement/de l'utilisation de resize_mode
comme je l'ai mentionné dans le fichier de mise en page en utilisant cela, je ne suis pas en mesure de maintenir le rapport d'aspect de la vidéo.
Je veux faire un type d'échelle CENTER_CROP
comme nous le faisons dans TextureSurface
comme mentionné dans image2 mais je reçois une sortie en tant que image1
J'ai essayé l'exemple suivant
Exemple de démonstration d'exoplayer
Ma sortie (Img 1) et la sortie attendue (Img 2)
code de mise en page exoplayer
<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" />
Avec cette ligne app:resize_mode="fill"
il s'adapte à la vidéo à l'écran mais s'étire verticalement, alors comment puis-je résoudre ce problème.
Les deux lignes suivantes m'ont aidé à lire la vidéo en mode plein écran.
En utilisant app:resize_mode
dans le fichier de mise en page, cela peut aider, mais il étire la vidéo comme mentionné dans l'image de la question, vous pouvez donc le résoudre en ajoutant ces deux lignes dans votre code.
exoVideoPlayerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FILL);
exoPlayer.setVideoScalingMode(C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING);
La ligne ci-dessous garantit que le rapport d'aspect est correctement maintenu, même pour les vidéos 4: 3.
playerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FIT);.
Pour maintenir le recadrage central dans exo player ci-dessous, le code a fonctionné pour moi:
Code Java:
playerView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_ZOOM);
ou vous pouvez utiliser à partir de xml:
<com.google.Android.exoplayer2.ui.PlayerView
Android:id="@+id/playerView"
Android:layout_width="match_parent"
app:resize_mode="zoom"
Android:layout_height="match_parent" />