在线视频播放App的实现
欢迎访问我的个人独立博客 ittiger.cn,原创文章,未经允许不得随意转载。
前一段时间在公司项目上做了一个视频播放的功能,当时时间紧,做完之后感觉有些地方处理的不好,所以就基于当时实现的思路进行了一些改进,加上自己平时喜欢看新闻客户端里面的一些短视频,所以就用网易等客户端的视频数据完成了一个独立的视频播放APP,顺便巩固下其他的技术。
主要功能
- 列表中播放视频
- 列表滑动时如果正在播放视频,则列表中播放的视频自动切换为小窗口浮动播放
- 列表播放切换到全屏播放模式
- 视频播放时也添加了完整的暂停、播放等控制操作,也添加了视频播放进度,视频缓冲进度等显示功能
- 视频全屏播放时支持左右滑动实现视频的快进和后退,支持右边上下滑动调整播放音量,左边上下滑动调整播放器的亮度等手势控制操作
主要使用的开源库
Mosby[一个MVP框架]、RxJava、Retrofit2、ButterKnife、Glide、Systembartint、TigerDB、Material Design相关控件
播放器
- 播放器采用
Android
中自带的TextureView + MediaPlayer
实现,同时视频播放过程中因为涉及到列表、小窗口、全屏续播等问题,所以整个视频播放过程中,播放器采用的是全局单例模式实现,这样就可以达到无缝切换续播的问题 - 切换到全屏播放时,是直接重新开启一个横向的
Activity
来实现全屏播放
APP实现效果图
github地址
猛戳这里
感兴趣的朋友欢迎去我的github上star
和fork
下面是我的个人公众号,欢迎关注交流
在线视频播放App的实现相关推荐
- 播放视频android学习笔记---44_在线视频播放器,网络视频解析器,SurfaceView 控件使用方法...
最近用使开辟的过程中涌现了一个小题问,顺便录记一下因原和法方--播放视频 44_在线视频播放器 ------------------------- 1.注意这里,在模拟器中,android2.2和an ...
- js动态创建两个div 把其中一个添加到另一个的里面_我开发了一个鸿蒙在线教育APP!...
鸿蒙 2.0 已经发布了有段时间了,目前网上也有些小 demo 了,但是缺乏稍微大点的项目代码. 我准备计划开发一个稍微正式点的项目,我写了个初略的项目需求清单,来体验鸿蒙应用开发. 目前我已经着手实 ...
- 基于苹果CMS系统的双端视频播放APP源码+视频教程
是一款基于苹果CMS系统的移动端在线视频播放软件, 支持mp4.flv.m3u8.rmvb.mkv等主流视频格式的播放,现有安卓+ios版本. 基于苹果CMS系统的双端视频播放APP源码+视频教程.z ...
- java 酒店预定 app_Android应用源码酒店在线预定app项目全套
[实例简介] Android应用源码酒店在线预定app项目全套 [实例截图] [核心代码] package com.bn.summer; import android.graphics.Bitmap; ...
- android学习笔记---44_在线视频播放器,网络视频解析器,SurfaceView 控件使用方法
44_在线视频播放器 ------------------------- 1.注意这里,在模拟器中,android2.2和android2.1视频是没有播放效果的,这个主要是因为模拟器的原因和程序代码 ...
- 百度年龄计算机在线使用,百度精准年龄计算器在线计算app
百度精准年龄计算器在线计算app是一款十分便捷实用的计算器软件,这款app与正常的计算器不同,它是用来计算你的年龄的.使用了高智能的AI在线为用户们进行计算并且还能够进行一定的预测,包括你的后几年的生 ...
- 分析报告 | 在线教育APP的市场到底有多大?
转自:http://www.chanpin100.com/article/105177 学习与进修已经成为伴随现代人终生的需求.在移动互联网开始普及以来,移动在线教育因其对碎片化时间的良好利用以及使用 ...
- 分享几个在线制作APP应用的网站
随着移动化设备在网络中的普及,智能手机.平板电脑这些电子产品越来越成为了当今上网使用最频繁的工具,所以网站拥有一个属于自己的APP客户端应用也势在必行!这里我就给大家介绍几个在线制作APP应用的网站. ...
- 在线打包app平台以及流程平台分析(AndroidiOS)
移动互联网时代,我们需要为自己的业务.博客.产品或服务制作一款移动应用程序.但时常会面临人力.时间.金钱成本诸多障碍. 好消息是,现在进入移动市场不再一定需要数万或数十万的资金,也不需要几个月的研发打 ...
最新文章
- JVM基本架构及生命周期
- 几种常见的攻击方式扫盲(二)——DNS 反射放大攻击
- Confluence 实现公司wiki【转】
- tableau三轴合并_《Tableau数据可视化实战》——1.12节合并不同数据源-阿里云开发者社区...
- java select下拉标签_java中下拉框select和单选按钮的回显操作
- 图形用户界面和交互输入方法---图形用户界面的设计
- 简单的php文件上传实例
- Access链接表的使用
- java用循环图形显示_请问如何在使用循环绘制图形时使每个图形的显示之间有一定的延迟时间?...
- Python中各种括号的区别、用途及使用方法
- android初始化框架alpha,Android Chart 框架 MPAndroidChart 学习笔记1_框架初始化
- 快速突破面试算法之分治算法篇
- DP动态规划--m处理器问题- m processors(FZU - 1442)
- SVN版本控制介绍与使用(超详细版)
- 苹果开发者公司账号注册流程注册新的苹果Apple Id并双重验证步骤
- 什么是网络流量劫持?
- 二寸证件照尺寸怎么调?这两个方法让你在家也能制作证件照
- 重型柴油车OBD系统进入逻辑
- 5.NDK Android jni开发 异常处理 native奔溃解决(相机图片美化)
- numpy中的协方差,方差相关计算
热门文章
- 【游戏精粹】AI个性化决策系统
- 【唯一】的“万字配图“ | 讲透【链式存储结构】是什么?
- Go学习:切片slice的循环机制及性能
- Office-Word排版:“在某些节中,您为左右边距、栏间距或段落缩进选择的设置相对于页面宽度过大”问题的解决办法
- [storm]#0_storm部署
- ERP能解决什么?放心吧!低代码全都能搞定!
- 节假日海报——感恩父亲节专题
- 计算机一级培训描述,计算机一级培训资料(答案).pdf
- 北通阿修罗2 Pro 多模板 连接Cemu 支持体感
- 《期权、期货及其他衍生产品》读书笔记(第十章:期权市场机制)