一、VideoView的应用:
1、在布局文件中设计相关布局;
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context="com.qf.day_01.MainActivity"><VideoViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/vv_player"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><Buttonandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:text="播放"android:onClick="play"/><Buttonandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:text="暂停"android:onClick="pause"/></LinearLayout></LinearLayout>
2、在Java代码中查找相关控件
vv_player = (VideoView) findViewById(R.id.vv_player);
3、设置视频源
1>使用本地的视频资源
在res文件夹下新建raw文件夹,将VideoView要播放的文件放入到此文件夹内,在此文件夹内的所有文件都会生成R.XXX.XX
Uri mUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.mtv); vv_player.setVideoURI(mUri); 2>使用SD卡中的资源
vv_player.setVideoPath();
3>使用网络资源
Uri uri = Uri.parse("http://10.7.153.60:8080/share/mtv.mp4"); vv_player.setVideoURI(uri); 4、开启播放
//2.开启播放 vv_player.start();
5、编写暂停和继续播放方法
/*** 暂停播放的方法* @param view*/public void pause(View view) {//暂停vv_player.pause();//这个方法是完全停止播放,只有重新设置uri,才可以继续播放// vv_player.stopPlayback();}/*** 继续播放的方法* @param view*/public void play(View view) {//回复焦点,不能重新播放// vv_player.resume();//开始,也是当暂停之后继续开始vv_player.start();}}
二、自定义VideoView的应用:
1、创建一个类继承于VideoView,并重写里面的onMesure方法;
import android.content.Context;import android.util.AttributeSet;import android.widget.VideoView;/*** 自定义VideoView*/public class FullScreenVideoView extends VideoView {public FullScreenVideoView(Context context) {super(context);}public FullScreenVideoView(Context context, AttributeSet attrs) {super(context, attrs);}/*** 用来测量宽高* @param widthMeasureSpec* @param heightMeasureSpec*/@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);int wSize = MeasureSpec.getSize(widthMeasureSpec);int hSize = MeasureSpec.getSize(heightMeasureSpec);//自己设置宽高setMeasuredDimension(wSize,hSize);}}
2、在布局文件中使用自定义的VideoView
<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_videoview"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.qf.day_01.Main3Activity"><com.qf.day_01.FullScreenVideoViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/vv_player"/></RelativeLayout>
3、在Java代码中找到控件并进行相关操作
public class Main3Activity extends AppCompatActivity {private VideoView mVideoView;private Uri mUri;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main3);mVideoView = (VideoView) findViewById(R.id.vv_player);//1.设置视频源mUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.mtv);mVideoView.setVideoURI(mUri);//媒体控制器。可以控制播放的进度MediaController mController = new MediaController(this);//设置给VideoViewmVideoView.setMediaController(mController);//给媒体控制器设置anchorViewmController.setAnchorView(mVideoView);//开始视频播放mVideoView.start();// MediaController可以用到控制播放的进度:// 1.会自动隐藏// 2.可以拖动// 3.可以暂停,可以播放,可以快进和快退}}
随时随地看视频