1.VideoView的Demo,简单使用,播放网络视频和本地视频
//1, 设置播放地址 支持本地和网络的 如果是网络的,记得加权限
//mVideoView.setVideoPath(VIDEO_PATH); //这是网络播放
//这是本地播放
mVideoView.setVideoURI(Uri.parse(“android.resource://” + getPackageName() + “/” + R.raw
.play));
//设置一个媒体控制器 控制器默认在父布局的地步
//可以自己实现控制器布局
// mVideoView.setMediaController(new MediaController(this));
//设置准备好了才进行播放
mVideoView.setOnPreparedListener(this);
//设置视频播放完成的监听
mVideoView.setOnCompletionListener(this);
2.自定义View 实现全屏播放视频
public class MyVideoView extends VideoView {
private static final String TAG = “MyVideoView”;
public MyVideoView(Context context) {
this(context, null);
}
public MyVideoView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public MyVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
//widthMeasureSpec : 期望的宽度(可以理解为布局文件的宽度)
//heightMeasureSpec : 期望的高度(可以理解为布局文件的高度)
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
Log.e(TAG, “onMeasure: widthMeasureSpec–” + widthMeasureSpec + " heightMeasureSpec:" +
heightMeasureSpec);
//获取控件的宽度,手动进行测量
//获取被父控件约束的宽度或者是高度
//参数1:默认控件的宽/高
//参数2:父控件约束的宽/高
int width = getDefaultSize(0, widthMeasureSpec);
int height = getDefaultSize(0, heightMeasureSpec);
this.setMeasuredDimension(width, height);
}
}
3.拖动进度条,播放指定位置的视频
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
//如果是用户改变的,那么将视频进度移动到指定位置进行播放
mVideoView.seekTo(progress);
}
}
学习分享
在当下这个信息共享的时代,很多资源都可以在网络上找到,只取决于你愿不愿意找或是找的方法对不对了
很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘
如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。
2021最新上万页的大厂面试真题
七大模块学习资料:如NDK模块开发、Android框架体系架构…
2021大厂面试真题:
只有系统,有方向的学习,才能在短时间内迅速提高自己的技术,只有不断地学习,不懈的努力才能拥有更好的技术,才能在互联网行业中立于不败之地。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!