Android音视频开发之如何全屏显示视频且不拉伸?

Posted 刘兆贤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android音视频开发之如何全屏显示视频且不拉伸?相关的知识,希望对你有一定的参考价值。

     本文来自刘兆贤的博客_CSDN博客-Java高级,Android旅行,Android基础领域博主 ,引用必须注明出处!

在考虑这个问题的,优先想到了ffmpeg,将视频剪切后再显示在屏幕上。但前提条件是,提供本地资源或者网络链接,开始播放时无卡顿,所以ffmpeg被直接pass。

接下来,还有哪些好方法呢?视频要全屏,要么适配屏幕宽度(screenWidth/videoWidth),要么适配屏幕高度,就看哪个比例大,就以哪个为准,进行视频拉伸。

我们会发现一个问题,即使拉伸后,MediaPlayer还是会自动适配,以合适的比例显示在屏幕上,即无法铺满全屏。

那么如何解决这个问题呢?

对的,我们让视频显示到屏幕以外,这样多余的部分是不可见的,那不就满足需求了!

实施的核心如下:

public class VideoLoopPlayer extends FrameLayout 

    private SurfaceView mSurfaceView;

    private MediaPlayer mMediaPlayer;
    private AssetFileDescriptor mAssetFileDescriptor;
    private String mDataSource;

    public VideoLoopPlayer(@NonNull Context context) 
        

以上是关于Android音视频开发之如何全屏显示视频且不拉伸?的主要内容,如果未能解决你的问题,请参考以下文章

全屏视频查看而不拉伸视频

如何让电脑全屏显示视频

视频视图中的 Android 全宽

html5视频android:全屏保持纵横比

启用 youtube 视频从全屏返回后,Android 软键盘将不显示

旋转android设备时如何设置全屏视频