2016-12-21 1 views
0

J'utilise lecteur multimédia android par bibliothèque ExoMedia (com.devbrackets.android.exomedia)Comment obtenir la taille de la vidéo interne en utilisant EMVideoView

Il fonctionne vraiment super, mais il semble y avoir aucun moyen d'obtenir la vidéo les propriétés, telles que la largeur et la hauteur, qui sont critiques par exemple pour définir la taille de la vue vidéo sur celle de la vidéo.

Existe-t-il un moyen de le récupérer?

Répondre

0

Solution est d'obtenir l'API vidéo vue enfant et exploiter sur ce point:

VideoViewApi videoViewImpl = (VideoViewApi)mButtonMediaVideo.findViewById(R.id.exomedia_video_view); 
float videoWidth = videoViewImpl.getWidth(); 
float videoHeight = videoViewImpl.getHeight(); 
1

J'ai trouvé méthode setOnVideoSizedChangedListener dans VideoView. J'utilise la dernière version de la bibliothèque 4.0.3 et utilise VideoView au lieu de EMVideoView sous le package com.devbrackets.android.exomedia.ui.widget.

Dans la méthode setOnVideoSizedChangedListener, j'ai pu obtenir la largeur et la hauteur d'origine de la vidéo.

Voici l'exemple de code sur la façon dont je pourrais obtenir la taille de la vidéo.

videoView.setOnVideoSizedChangedListener(new OnVideoSizeChangedListener() { 
     @Override 
     public void onVideoSizeChanged(int intrinsicWidth, int intrinsicHeight) { 
      Log.d("Original Video Size", "width: " + String.valueOf(intrinsicWidth) + ", " + "height: " + String.valueOf(intrinsicHeight)); 
      float aspectRatio = intrinsicWidth/intrinsicHeight; 
      int actualHeight = (int) (videoView.getWidth() * aspectRatio); 
      Log.d("VideoView Height", String.valueOf(actualHeight)); 
     } 
    }); 

Veuillez me faire savoir si vous avez besoin d'aide.