如何使用EMVideoView获取内部视频大小

时间:2016-12-21 14:13:47

标签: android video exoplayer

我通过ExoMedia库(com.devbrackets.android.exomedia)使用Android的替代媒体播放器

它确实很有效,但似乎无法获取视频属性,例如宽度和高度,这对于将视频视图大小设置为视频非常重要。

有没有办法检索它?

2 个答案:

答案 0 :(得分:1)

我在VideoView中找到了setOnVideoSizedChangedListener方法。我正在使用最新的库版本4.0.3,它在com.devbrackets.android.exomedia.ui.widget包下使用VideoView而不是EMVideoView。

在setOnVideoSizedChangedListener方法中,我能够获得视频的原始宽度和高度。

以下是关于如何获取视频大小的代码示例。

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));
        }
    });

如果您需要任何进一步的帮助,请与我们联系。

答案 1 :(得分:0)

解决方案是获取视频API子视图并对其进行操作:

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