Android 视频播放器,VideoView播放视频

android:layout_height=“wrap_content”

app:layout_constraintLeft_toLeftOf=“parent”

app:layout_constraintRight_toRightOf=“parent”

app:layout_constraintTop_toTopOf=“parent” />

实现activity


/**

  • @author : LGQ

  • @date : 2020/12/19 09

  • @desc :

*/

public class PlayVideoActivity extends Activity {

VideoView mVideoView;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_play_video);

mVideoView = findViewById(R.id.player);

StandardVideoController controller = new StandardVideoController(this);

//根据屏幕方向自动进入/退出全屏

controller.setEnableOrientation(true);

controller.addControlComponent(new CompleteView(this));//自动完成播放界面

VodControlView vodControlView = new VodControlView(this);//点播控制条

controller.addControlComponent(vodControlView);

//根据是否为直播决定是否需要滑动调节进度

controller.setCanChangePosition(false);

//如果你不想要UI,不要设置控制器即可

mVideoView.setVideoController(controller);

// mVideoView.setUrl(“http://vfx.mtime.cn/Video/2019/03/14/mp4/190314223540373995.mp4”);

mVideoView.setUrl(“http://szhdljhsxshg.app.xiaozhuschool.com/uploads/20201022/2dd814eb3ad4a50335346f29306204e4.mp4”);

mVideoView.start();

}

private VideoView.OnStateChangeListener mOnStateChangeListener = new VideoView.SimpleOnStateChangeListener() {

@Override

public void onPlayerStateChanged(int playerState) {

switch (playerState) {

case VideoView.PLAYER_NORMAL://小屏

break;

case VideoView.PLAYER_FULL_SCREEN://全屏

break;

}

}

@Override

public void onPlayStateChanged(int playState) {

switch (playState) {

case VideoView.STATE_IDLE:

break;

case VideoView.STATE_PREPARING:

//在STATE_PREPARING时设置setMute(true)可实现静音播放

// mVideoView.setMute(true);

break;

case VideoView.STATE_PREPARED:

break;

case VideoView.STATE_PLAYING:

//需在此时获取视频宽高

int[] videoSize = mVideoView.getVideoSize();

L.d(“视频宽:” + videoSize[0]);

学习宝典

对我们开发者来说,一定要打好基础,随时准备战斗。不论寒冬是否到来,都要把自己的技术做精做深。虽然目前移动端的招聘量确实变少了,但中高端的职位还是很多的,这说明行业只是变得成熟规范起来了。竞争越激烈,产品质量与留存就变得更加重要,我们进入了技术赋能业务的时代。

不论遇到什么困难,都不应该成为我们放弃的理由!

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我针对Android程序员,我这边给大家整理了一套学习宝典!包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【算法合集】

【延伸Android必备知识点】

【Android部分高级架构视频学习资源】

加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
Android必备知识点】**

[外链图片转存中…(img-yBcUqk4T-1725669355037)]

【Android部分高级架构视频学习资源】

加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值