Android VideoView播放 项目中的 视频文件 自动横屏 全屏播放

来源:互联网 发布:淘宝运作流程图 编辑:程序博客网 时间:2024/05/23 00:02

记录最近遇到的一个android播放视频的需求:
APP主页上方有一个操作演示字样的入口,点击后开始播放一段视频,视频文件是放在工程里的。

话说以前还没做过类似播放视频的功能,根据以往的经验来看,最简单就是调起系统的或者三方的视频播放器来直接使用,应该就像跳转拨号界面一样简单吧,并且旁边的ios的就是这么做的,放在项目中的视频可以直接使用系统播放器来播放。

然而做起来之后发现android并不是这样的,找来找去发现如果是放在项目中的视频文件并不能直接调起系统或三方播放器来播放(如果有方法,还请留言交流),能调起系统等播放的视频只能是存放在本地sd卡上,或者是播放网络视频才可以,由此,只能选择在程序中实现视频播放器的功能了,使用videoview控件来播放项目中的视频文件,倒也不难,总结如下:

一、首先把视频资源放到项目中的res/raw目录下,命名规范遵循必须是小写字母、数字或下划线
这里写图片描述

二、新建一个独立的,用于整屏播放视频的activity

//布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >   <RelativeLayout        android:layout_width="match_parent"        android:layout_height="match_parent" >        <VideoView            android:id="@+id/public_videoView"            android:layout_width="match_parent"            android:layout_height="match_parent" />    </RelativeLayout></LinearLayout>
//注册新activity的项目清单文件//标签中添加screenOrientation="landscape"自动横屏,不写默认竖屏<activity    android:name="com.sunny.chongdianxia.activity.VideoActivity"    android:screenOrientation="landscape" />

三、activity中的主要实现

    VideoView public_videoView; //定义控件    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.public_video);        //初始化控件        public_videoView =(VideoView)findViewById(R.id.public_videoView);        //首先拼出在资源文件夹下的视频文件路径string字符串        String url = "android.resource://" + getPackageName() + "/" + R.raw.cdx_czsm;        //字符串解析成Uri        Uri uri = Uri.parse(url);             //给videoview设置播放资源        public_videoView.setVideoURI(uri);        //这里用相对布局包裹videoview 实现视频全屏播放         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);        public_videoView.setLayoutParams(layoutParams);        public_videoView.start();    }

ps:如有问题,留言交流

0 0
原创粉丝点击