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

列表使用的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小时内与您取得联系。