利用Google给的原组件VideoView来简单的实现视频播放.包括播放,暂停,横竖屏切换,声音的改变,屏幕亮度的改变,当声音改变时,会自动调用系统给的声音条,而当滑动亮度的时候需要自己给写个seekbar.
由于如果刚开始我想让视频在竖屏的时候充满整个屏幕,当在布局中写上mach_parent的时候,他不会充满屏幕,所以我重写了一个类,让它继承VideoView,重写onMeasure方法,在这个里边会获取设备的宽高,然后设置给它.
进入布局的设置 把你所有需要的设置上
由于如果刚开始我想让视频在竖屏的时候充满整个屏幕,当在布局中写上mach_parent的时候,他不会充满屏幕,所以我重写了一个类,让它继承VideoView,重写onMeasure方法,在这个里边会获取设备的宽高,然后设置给它.
public class FullVideoView extends VideoView { public FullVideoView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //必须得注掉 不然的话就会默认的返回布局中的宽高 // super.onMeasure(widthMeasureSpec, heightMeasureSpec); //获取设备中的的总宽高 int widthSize = MeasureSpec.getSize(widthMeasureSpec); int heightSize = MeasureSpec.getSize(heightMeasureSpec); //将这些值返回到布局当中使得可以使用 setMeasuredDimension(widthMeasureSpec,heightMeasureSpec); } }
进入布局的设置 把你所有需要的设置上
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_video" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.fei.advanceseven.VideoActivity"> <FrameLayout android:id="@+id/video_container" android:layout_width="match_parent" android:layout_height="240dp"> <com.example.fei.advanceseven.widget.FullVideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="match_parent"/> <!-- 播放的控制器 : 屏幕中间有播放暂停的按钮 屏幕的底部,播放时间,总时间,seekBar 是否全屏按钮 --> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <SeekBar android:visibility="gone" android:id="@+id/brightness_display" android:layout_marginTop="20dp" android:layout_width="200dp" android:layout_gravity="center_horizontal" android:layout_height="wrap_content"/> <CheckBox android:layout_width="50dp" android:layout_height="50dp" android:layout_gravity="center" android:id="@+id/pause_play" android:button="@null" android:gravity="center" android:background="@drawable/pause_play_selector" /> <LinearLayout android:id="@+id/bottem_controller" android:layout_width="match_parent" android:layout_height="40dp" android:layout_gravity="bottom" android:orientation="horizontal" > <TextView android:id="@+id/current_position" android:layout_width="50dp" android:layout_height="match_parent" android:text="00:00" android:textColor="#fff" android:gravity="center" android:layout_marginLeft="5dp" /> <SeekBar android:id="@+id/progress_controller" android:layout_width="0dp" android:layout_gravity="center" android:layout_height="match_parent" android:layout_weight="1" /> <TextView android:id="@+id/duration" android:gravity="center" android:text="29:59" android:textColor="#fff" android:layout_width="50dp"