Android 播放视频(四)VideoView全屏视频播放

您所在的位置:网站首页 kiwi播放视频怎么全屏 Android 播放视频(四)VideoView全屏视频播放

Android 播放视频(四)VideoView全屏视频播放

2024-07-12 22:26| 来源: 网络整理| 查看: 265

Android 播放视频(四)VideoView全屏视频播放

在教程(二)中讲述了VideoView如何播放视频,我们就总会产生一个需求,如何让VidoView进行全屏播放呢?当手机旋转进入横屏的时候让VideoView全屏播放,当旋转回来的时候再次恢复先前的模样。

为VideoView加一个Layout

为什么要给VideoView的外面加一个布局呢?加一个布局的原因是只需要控制这个布局就可以完全控制Videoview了,因为VideoView的宽、高都设置成了“match_parent”。这个时候您或许会问:在VideoView外面加不加布局也没啥区别吧?区别就是防止VideoView根据播放的视频自动设置宽高。加布局的作用就是在非全屏状态下锁定VideoView的宽高。

接收屏幕旋转事件

首先要注册接收的事件在AndroidManifest.xml文件中的configChanges中添加”orientation|screenSize”这两个事件。

在窗口事件中处理屏幕旋转

在接收上述事件的窗口中重载onConfigurationChanged方法。

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); int rot = getWindowManager().getDefaultDisplay().getRotation(); CNTrace.d("onConfigurationChanged : " + newConfig + ", rot : " + rot); if(rot == Surface.ROTATION_90 || rot == Surface.ROTATION_270){ mVideoViewLayoutParams = mVideoLayout.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); mVideoLayout.setLayoutParams(layoutParams); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); }else if(rot == Surface.ROTATION_0){ // RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(320,240); // lp.addRule(RelativeLayout.CENTER_IN_PARENT); mVideoLayout.setLayoutParams(mVideoViewLayoutParams); } }

通过上述代码就可以在视频播放的时候进行屏幕旋转,在旋转到横屏的情况下进行全屏播放,在旋转回来之后依旧保持最初的播放状态。使用VideoView的好处是该控件可以始终保持视频的播放比例,而不会因为全屏或者设置VideoView的宽、高而造成视频图像的拉伸。

上述代码下载位置https://github.com/kingroc711/AndroidMediaPlayer/releases/tag/FullScreen



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3