Android 列表播放视频和浮动播放窗口

最近接到个需求: 列表中播放视频 当视频正在播放中 用户将播放的该item滚动出屏幕时 在屏幕右下方出现一个小的浮动视频窗口继续播放视频 当用户将视频再滚动回播放的item时 再切换到该item 继续播放。

 拿到需求的时候第一时间会想利用ListView+VideoView来实现列表播放,但现实往往是残酷的。Videoview继承于SurfaceView,而SurfaceView是没有UI同步缓冲区的这就导致了在列表滚动的时候,正在播放的视频需要跟上滚动的步伐,既然这条路走不通的话只能选择使用TextureView来处理了,在这里强烈推荐一个大神的库VideoPLayerManager 如果看官遇到类似的需求 那么这么个库可以帮上你很大的忙,但是我遇到的需求并没有这么简单 还需要很重要的一步是解决列表里面的视频和浮动播放窗口的切换问题。

我的思路是只持有一个MediaPlayer对象 不论是播放在ListView中还是悬浮播放窗口中,计算当前item是否滚动出屏幕 若滚出了屏幕就把浮动的TextureView传给MediaPlayer进行切换播放 当item又出现到屏幕上时 再将该Item中的TextureView传给MediaPlayer 这样就解决了视频的无缝切换 


接下来就是处理ListView中的item的状态 例如时间的显示 seekbar播放进度显示等 我这是用的EventBus。如果各位看官大神 对于这个需求还有更好的解决方案欢迎留言或私信,我就在这先抛块砖 :)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值