Android VideoView 根据每个设备调整大小

Posted

技术标签:

【中文标题】Android VideoView 根据每个设备调整大小【英文标题】:Android VideoView resize according every device 【发布时间】:2019-06-12 06:12:49 【问题描述】:

我正在 android 视频视图中播放视频。问题是视频未根据设备比例调整大小。在大型设备上它被拉伸或在小型设备上它是skeqzes。有没有办法像中心裁剪一样保持比例并填充全宽。

我已经检查了以下答案:

Resize video to fit the VideoView

Android VideoView orientation change with buffered video

但没有任何效果。

我的代码:

mBinding.videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() 
            @Override
            public void onPrepared(MediaPlayer mp) 
                mp.setOnInfoListener(new MediaPlayer.OnInfoListener() 
                    @Override
                    public boolean onInfo(MediaPlayer mp, int what, int extra) 

                        if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) 
                            mBinding.placeholder.setVisibility(View.GONE);

                            return true;
                        
                        return false;
                    
                );

                mp.setLooping(true);
            
        );

XML:

  <VideoView
            android:id="@+id/videoView"
            android:layout_
            android:layout_>

  </VideoView>

【问题讨论】:

【参考方案1】:

将整个 xml 布局包装到 RelativeLayout 中。然后修改你的VideoView标签如下-

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_>

    <VideoView android:id="@+id/videoView"
         android:layout_alignParentTop="true"
         android:layout_alignParentBottom="true"
         android:layout_alignParentLeft="true"
         android:layout_alignParentRight="true"
         android:layout_
         android:layout_>
    </VideoView>

</RelativeLayout>

【讨论】:

以上是关于Android VideoView 根据每个设备调整大小的主要内容,如果未能解决你的问题,请参考以下文章

将设备上的视频流式传输到 videoview - Android

如何使用来自外部设备的 setVideoURI 流从 android videoview 获取帧?

Android 如何更改默认 VideoView / MediaPlayer 全屏?

Android Studio - 如何避免 VideoView 溢出其(视图)容器?

如何在 SplashScreen API android 上使用 VideoView?

Android videoView over 3G 连接