android加载优酷视频播放器,使用android优酷视频云一些问题

最近项目迭代需要添加视频播放功能,由于若干原因就选择了优酷视频,本来挺简单的一个功能在做的时候居然碰到了若干意想不到的问题,果然还是优酷视频提供的demo最稳定啊,啥问题木有~~o(>_

好了,闲话不多说,就聊聊我在项目中使用优酷视频云时遇到的问题吧!

1、viewpager+fragment结构,在卡片中播放视频,当时做的时候想都没想就靠惯性在每个item中放了一枚mYoukuPlayerView,然后就碰到了复用问题,优酷视频的生命周期就得不到保障了,于是就想到了动态添加,当卡片中有视频时把mYoukuPlayerView动态添加进item中,这样一来整个fragment就有且只有一个播放面板了,O(∩_∩)O

141ddf081e67

实现方式很简单,在item中放一个空的LinearLayout,背景设置为黑色,child设置居中, 当用户点击播放按钮时再动态添加进这个空的布局当中,然后把空的LinearLayout设置为可见,这时就能妥妥的播放视频啦!

2、卡片左右切换视频停不下来有木有!我们知道viewpager默认加载3张,通过设置setOffscreenPageLimit(1)来限制默认加载的条数,但是这样还是不行啊有木有,于是就read the fucking source code

141ddf081e67

141ddf081e67

绝望了,本来想设置为0,结果不起作用,于是就想到了重写viewpager,把默认值改为0,然后也这样做了,结果每滑动一下都要时间加载,没有了流畅度的viewpager绝不能忍,于是乎想到了以下方法:

1)添加滑动监听addOnPageChangeListener(this);

2)在onPageSelected中判断视频是否正在播放, 通过添加播放器回调得到当前视频的播放状态

141ddf081e67

有了它就能知道是否有视频在播放了

141ddf081e67

通过调用release()方法把视频给释放掉,but,切换回来后黑了有木有,这是因为没有把添加播放器的linearlayout给move掉

141ddf081e67

然后adapter调用此方法就大功告成啦!

3、播放广告切换卡片视频停不下来

这个问题着实让我头疼了一段时间,后来从头到尾翻看了优酷视频的源码,终于让我找到了解决办法,通过调用mYoukuPlayer获得mMediaPlayerDelegate, 然后调用isADShowing,值为true or false来判断视频是否正在播放广告。

4、如何刷新单个的item

这个问题让人很头疼,默认一张卡片的左右两边随着卡片的加载而默认加载,到卡片的左边或右边的第二张时(因为设置了offset为0)才会刷新adapter,解决办法来了

141ddf081e67

在fragment中onpageSelected方法中监听position,在adapter中通过设置的tag获取currentPage,如果等于当前的position,返回POSITION_NONE,这是adapter就会刷新item了!

好了,以上就是大致碰到的问题了,一些小问题想不起来就不一一描述了,希望能给正在用优酷视频或将要用优酷视频的小伙伴给予帮助,不是打广告,不是打广告,不是打广告,重要的事情一定要说三遍!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值