一、VideoView的应用:
1、在布局文件中设计相关布局;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns: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">
<VideoView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/vv_player"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="播放"
android:onClick="play"/>
<Button
android: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
*/
@Override
protected 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"?>
<RelativeLayout
xmlns: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.FullScreenVideoView
android: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;
@Override
protected 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);
//设置给VideoView
mVideoView.setMediaController(mController);
//给媒体控制器设置anchorView
mController.setAnchorView(mVideoView);
//开始视频播放
mVideoView.start();
// MediaController可以用到控制播放的进度:
// 1.会自动隐藏
// 2.可以拖动
// 3.可以暂停,可以播放,可以快进和快退
}
}
共同学习,写下你的评论
评论加载中...
作者其他优质文章