2017-02-15 2 views
1

Je diffuse de la vidéo sur un TextureView en utilisant Exoplayer.Obtenir des informations sur les métadonnées pour le redimensionnement des vidéos

Je dois obtenir la largeur, la hauteur et la rotation de la vidéo pour maintenir le rapport d'aspect.

Pour cela, j'utilise un FFmpegMediaMetadataRetriever. Le fait est que cela prend beaucoup de temps pour récupérer les méta-données, puisque la source de données est une URL.

Une solution alternative plus rapide?

Répondre

2

Trouvé la solution. Répondre à ma propre question pour que cela puisse aider quelqu'un à venir ici.

La solution a consisté à mettre en œuvre les méthodes de SimpleExoPlayer.VideoListener

Dans la méthode onVideoSizeChanged(), vous obtiendrez la largeur, la hauteur et la rotation. Vous pouvez ensuite manipuler ces valeurs et appliquer la transformation à votre TextureView.

@Override 
public void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio) 
{ 
    // do your resizing stuff 
} 

En outre, ne pas oublier d'ajouter l'auditeur:

player.addVideoListener(this);