MDPlayer万能播放器

MDPlayer,基于ijkplayer+Rxjava+Rxandroid+Retrofit2.0+MVP+Material Design的android万能播放器,可以播放本地和在线视频,可以浏览宅男杀手妹纸图片,UI设计遵循 Material Design。

GitHub地址:https://github.com/Dawish/MDPlayer


UI浏览:

 
 
 
 
 
 
 

1.UI设计:

  • 列表使用RecyclerView,item为CardView并设置ripple波纹点击效果
  • viewpager指示器使用TabLayout
  • 侧滑栏使用NavigationView
  • 图片详情使用开源控件PhotoView,支持大缩小,旋转等等操作。
  • FloatingButton为开源控件FloatingActionMenu

2.App设计:

  • MVP架构,第一次真正使用MVP,真的使用了才会发现MVP的优势,MVP可以使Activity和Fragment非常简洁,Activity和Fragment中也不需要知道是怎么操作和流转的,我们只需要在回调接口中操作更新UI就可以了。
  • 所以得异步操作都使用Rxjava+Rxandroid,以前也是没用过,用过才发现、Rxjava是真的强大,Rxjava拥有非常丰富的操作符,我们灵活使用Rxjava可以创造无限可能,Rxjava就像搭建积木,Rxjava的操作符就行是积木块,使用Rxjava我们可以搭建出各种各种的积木,可以创造出很多可能,前提是你对Rxjava十分了解。
  • 网络请求采用retrofit2.0,retrofit2.0本身就很强大,配合、Rxjava后就更加强大了,retrofit2.0的使用我还没有更加深入的研究,日后再搞。
  • 离线缓存,离线缓存策略为,每次进入都是显示上一次的数据,本次的数据缓存下来,留着下一次显示,这样可以加快UI显示速度,可以离线使用App。
  • 图片加载使用picasso,picasso本身支持本地缓存。

3.知识点:

通过本app你可以学到: 
ijkplayer-Android 编译封装和集成 
- MVP架构,虽然我的这个app不是很复杂,但是大概的MVP是有的,首先我承认我的Model层写得不是很好。 
- 可以学习到Rxjava的使用,使用Rxjava递归读取内存所有的视频文件并分类,可以学习到justfromflatMapgroupByfilter等Rxjava操作符,相对别的app我用到的操作符相对还算多的。 
- 学习到retrofit2.0的使用,结合Rxjava做网络请求。 
- 离线缓存,可以学习到离线数据缓存策略,以及缓存工具的使用。 
BaseActivityBaseFragmentBaseRecyclerViewAdapterBaseRecyclerViewHolder的封装。 
- Material Design和android5.0以后的新控件使用

4.依赖库:

    //FloatingActionMenu
compile 'com.github.clans:fab:1.6.4'
//retrofit
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'
//Rxjava + Rxandroid
compile 'io.reactivex:rxandroid:1.2.0'
compile 'io.reactivex:rxjava:1.1.5'
//blurview
compile 'com.eightbitlab:blurview:1.0.2'
//photoview
compile 'com.bm.photoview:library:1.4.0'
//picasso
compile 'com.squareup.picasso:picasso:2.5.2'
//umeng
compile 'com.umeng.analytics:analytics:latest.integration'

5.APK下载:

上架中…

6.知识点引导:

7.下版本改进

  • 下版本希望改进model层,对数据操作更加简洁
  • 增加视频播放历史记录
  • 自定义视频播控
  • 使用注解替代findViewById

Android 基于ijkplayer+Rxjava+Rxandroid+Retrofit2.0+MVP+Material Design的android万能播放器aaa的更多相关文章

  1. Android进阶:七、Retrofit2.0原理解析之最简流程【下】

    紧接上文Android进阶:七.Retrofit2.0原理解析之最简流程[上] 一.请求参数整理 我们定义的接口已经被实现,但是我们还是不知道我们注解的请求方式,参数类型等是如何发起网络请求的呢? 这 ...

  2. 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)

    前言 关键字:Vitamio.VPlayer.Android播放器.Android影音.Android开源播放器 本章节把Android万能播放器本地播放的主要功能(缓存播放列表和A-Z快速查询功能) ...

  3. 使用Vitamio打造自己的Android万能播放器(7)——在线播放(下载视频)

    前言 本章将实现非常实用的功能——下载在线视频.涉及到多线程.线程更新UI等技术,还需思考产品的设计,如何将新加的功能更好的融入到现有的产品中,并不是简单的加一个界面就行了,欢迎大家交流产品设计和技术 ...

  4. Android中使用SurfaceView+MediaPlayer+自定义的MediaController实现自定义的视屏播放器

    效果图如下: (PS本来是要给大家穿gif动态图的,无奈太大了,没法上传) 功能实现:暂停,播放,快进,快退,全屏,退出全屏,等基本功能 实现的思路: 在主布局中放置一个SurfaceView,在Su ...

  5. 使用Vitamio打造自己的Android万能播放器(6)——在线播放(播放列表)

    前言 新版本的VPlayer由设计转入开发阶段,预计开发周期为一个月,这也意味着新版本的Vitamio将随之发布,开发者们可以和本系列文章一样,先开发其他功能.本章内容为"在线视频播放列表& ...

  6. 使用Vitamio打造自己的Android万能播放器(3)——本地播放(主界面、播放列表)

    前言 打造一款完整可用的Android播放器有许多功能和细节需要完成,也涉及到各种丰富的知识和内容,本章将结合Fragment.ViewPager来搭建播放器的主界面,并实现本地播放基本功能.系列文章 ...

  7. 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放

    前言 本章继续完善播放相关播放器的核心功能,为后续扩展打好基础.   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://ove ...

  8. 使用Vitamio打造自己的Android万能播放器(1)——准备

    前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...

  9. material design 的android开源代码整理

    material design 的android开源代码整理 1 android (material design 效果的代码库) 地址请点击:MaterialDesignLibrary 效果: 2 ...

随机推荐

  1. 从C10K到C10M高性能网络的探索与实践

    在高性能网络的场景下,C10K是一个具有里程碑意义的场景,15年前它给互联网领域带来了非常大的挑战.发展至今,我们已经进入C10M的场景进行网络性能优化. 这期间有怎样的发展和趋势?环绕着各类指标分别 ...

  2. Controller接口控制器3

    11.AbstractWizardFormController 向导控制器类提供了多步骤(向导)表单的支持(如完善个人资料时分步骤填写基本信息.工作信息.学校信息等) 假设现在做一个完善个人信息的功能 ...

  3. iRedMail邮件系统配置简易视频安装教程

    iRedMail邮件系统配置简易视频安装教程        iRedMail邮件系统配置简易视频安装教程 iRedMail中文名为“艾瑞得邮件系统”, 属于开源的企业邮件解决方案,但其性能不逊于任何商 ...

  4. Felx之HTTPService

    获取并显示数据 为了向我们的程序提供数据,Adobe Flex包含特别为与HTTP服务器,网络服务或者是远程对象服务(Java对象)进行交互的而设计的组件.这些组件被称之为远程过程调用(RPC)服务组 ...

  5. 【Henu ACM Round #13 E】Spy Syndrome 2

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 对m个串建立一棵字典树. 然后对主串. 尝试从第一个位置开始.在字典树中尝试匹配 如果匹配到了位置i 就再从位置i+1开始尝试匹配 ...

  6. .netcore2.1开发部署及在centos7.x下的部署

    .netcore2.1的优势毋容置疑,具体的性能建议去实际test对比,相对于之前的.netfx不知道快了多少.选择C#作为后端开发语言,主要基于以下三点: 1)代码优雅 : 2)快速搭建一套小型企业 ...

  7. xwiki操作手册

    Xwiki官网:http://www.xwikichina.com/xwiki/bin/view/Main/中文官网. 1   用户管理 1.1    添加新用户 用户管理需要管理员权限,管理员登陆后 ...

  8. BZOJ——T 1113: [Poi2008]海报PLA

    http://www.lydsy.com/JudgeOnline/problem.php?id=1113 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: ...

  9. 为线程绑定CPU

    // learn gcc atomic variable #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> ...

  10. DuiVision开发教程(19)-菜单

    DuiVision菜单类是CDuiMenu.有两种显示的位置,一种是在窗体顶部某个button点击后能够下拉一个菜单,还有一种是托盘图标的右键菜单. 窗体中的菜单定义方式是xml文件里设置某个butt ...