全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android仿搜狐视频、微视等列表播放视频功能

最近项目中需要是实现在列表中自动播放视频,中间遇到了些问题,终于解决,特来跟大家分享一下:

列表使用的RecyclerView 播放视频使用MediaPlayer+TextureView。

主要思路:

1、监听RecyclerView的滑动,开始滑动时停止正在播放的item。

2、通过LinearLayoutManager 获取当前显示的第一个item及最后一个item

3、RecyclerView停止滑动后,选择item进行播放。如果当前界面只有一个item,播放当前。如果item数量大于2个,播放第二个。如当前界面有两个item则判定哪一个显示的区域比较大。播放item并记录当前position。

附上主要实现逻辑:

try { 
  int fristPos = layoutManager.findFirstVisibleItemPosition(); 
  int lastPos = layoutManager.findLastVisibleItemPosition(); 
  ViewHolder holder = null; 
  if (recyclerView.getChildCount() == 2) { 
  View fristView = recyclerView.getChildAt(0); 
  if (fristView != null) { 
   int[] location = new int[2]; 
   fristView.getLocationInWindow(location); 
   if (location[1] > 0) { 
   holder = (ViewHolder) recyclerView.findViewHolderForPosition(fristPos); 
   lastPlayPosition = fristPos; 
   } 
  } 
  if (holder == null) { 
   View lastView = recyclerView.getChildAt(1); 
   if (lastView != null) { 
   int[] lastViewLocation = new int[2]; 
   lastView.getLocationInWindow(lastViewLocation); 
   if ((lastViewLocation[1] + videoHeight) < screenHeight) { 
    holder = (ViewHolder) recyclerView.findViewHolderForPosition(lastPos); 
    lastPlayPosition = lastPos; 
   } 
   } 
 
 
  } 
  } else if (recyclerView.getChildCount() == 1) { 
  holder = (ViewHolder) recyclerView.findViewHolderForPosition(fristPos); 
  lastPlayPosition = fristPos; 
  } else { 
  holder = (ViewHolder) recyclerView.findViewHolderForPosition(fristPos + 1); 
  lastPlayPosition = fristPos + 1; 
  } 
 
 
  if (holder != null) { 
  holder.play(); 
  } 
  
 } catch (Exception e) { 
  e.printStackTrace(); 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # 列表  # 播放视频  # android使用surfaceview+MediaPlayer播放视频  # Android ViewPager中显示图片与播放视频的填坑记录  # Android中使用TextureView播放视频  # Android编程实现播放视频时切换全屏并隐藏状态栏的方法  # Android编程实现播放视频的方法示例  # Android多媒体教程之播放视频的四种方法  # Android 播放视频常见问题小结  # Android DragVideo实现播放视频时任意拖拽的方法  # Android仿新浪微博/QQ空间滑动自动播放视频功能  # android surfaceView实现播放视频功能  # 第一个  # 第二个  # 只有一个  # 比较大  # 大家分享  # 正在播放  # 大家多多  # 自动播放  # 特来  # 有两个  # 列表中  # lt  # videoHeight  # LinearLayoutManager  # screenHeight  # lastViewLocation  # pre  # class  # lastView  # position 


相关文章: 韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  建站之星后台管理:高效配置与模板优化提升用户体验  电商平台网站制作流程,电商网站如何制作?  如何撰写建站申请书?关键要点有哪些?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  网站制作费用多少钱,一个网站的运营,需要哪些费用?  javascript中对象的定义、使用以及对象和原型链操作小结  高端建站三要素:定制模板、企业官网与响应式设计优化  购物网站制作公司有哪些,哪个购物网站比较好?  MySQL查询结果复制到新表的方法(更新、插入)  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  家庭服务器如何搭建个人网站?  如何快速生成橙子建站落地页链接?  网站制作公司排行榜,四大门户网站排名?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  寿县云建站:智能SEO优化与多行业模板快速上线指南  c# Task.ConfigureAwait(true) 在什么场景下是必须的  如何快速生成专业多端适配建站电话?  动图在线制作网站有哪些,滑动动图图集怎么做?  江苏网站制作公司有哪些,江苏书法考级官方网站?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  网页设计与网站制作内容,怎样注册网站?  宝塔建站后网页无法访问如何解决?  如何配置FTP站点权限与安全设置?  网站企业制作流程,用什么语言做企业网站比较好?  如何选择PHP开源工具快速搭建网站?  兔展官网 在线制作,怎样制作微信请帖?  浅析上传头像示例及其注意事项  如何通过二级域名建站提升品牌影响力?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  电商网站制作价格怎么算,网上拍卖流程以及规则?  高防服务器租用首荐平台,企业级优惠套餐快速部署  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站之星代理如何优化在线客服效率?  微信h5制作网站有哪些,免费微信H5页面制作工具?  建站主机选购指南:核心配置与性价比推荐解析  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  广州营销型建站服务商推荐:技术优势与SEO优化解析  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  建站主机是什么?如何选择适合的建站主机?  建站主机如何选?高性价比方案全解析  网站制作软件免费下载安装,有哪些免费下载的软件网站?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站主机选购指南与交易推荐:核心配置解析  建站之星如何配置系统实现高效建站?  如何用美橙互联一键搭建多站合一网站?  完全自定义免费建站平台:主题模板在线生成一站式服务  如何选择美橙互联多站合一建站方案?  如何快速打造个性化非模板自助建站?  高性能网站服务器配置指南:安全稳定与高效建站核心方案 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。