因为觉得哔哩哔哩的播放器UI和设计挺不错的,所以就模仿哔哩哔哩播放器部分搭建了一个大体的框架,自己做了一个视频应用,先看一下效果。
![]() |
![]() |
![]() |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
如果图片加载不出来的话,可以直接查看screenshot目录里面的截图,在screenshot目录里面也有一个BiliPlayer.apk,可以直接安装体验。
项目采用MVVM开发模式,使用Kotlin + Retrofit + 协程 + ViewModel + LiveData进行开发,视频播放接入GSYVideoPlayer,视频Api使用了开眼的Api,特此感谢!
包含3个模块:universal(公共sdk)、app(主要模块)、video(视频模块)
- base:基类组件
BaseActivity:基类Activity
BaseFragment:基类Fragment
BaseListActivity:列表数据对应的基类Activity
BaseListFragment:列表数据对应的基类Fragment
IBaseView:基类Activity和基类Fragment共同调用的方法集合
IBaseListView:列表数据对应的基类Activity和基类Fragment共同调用的方法集合
BaseViewModel:基类ViewModel
BaseViewModelWithData:基类ViewModel的进一步封装,默认包含一个接口请求
BaseListViewModel:列表数据对应的基类ViewModel
CommonBaseActivity:不需要额外声明ViewModel的Activity的父类
CommonBaseFragment:不需要额外声明ViewModel的Fragment的父类
WebviewActivity:H5 Activity基类
WebviewFragment:H5 Fragment基类
DontSwipeBack:不需要侧滑退出的Activity可以选择继承这个类
liveDataEntity.DialogConfig:加载对话框配置信息
liveDataEntity.ErrorResponse:接口请求失败结果封装
- http:网络请求相关
Config:配置开发和生产环境
RetrofitFactory:配置Retrofit
BaseListResponse:列表类型数据对应的基类Bean
interceptor目录:自定义拦截器
- util:通用的工具
- widget:自定义控件
- adapter:所有的adapter适配器
- dialog:自定义对话框
- entity:所有的Bean实体类
- func:功能组件
- server:接口定义
ApiService:定义接口地址
ApiHelper:封装接口参数
- ui:界面相关
common:通用页面基类
detail:各类详情页
VideoDetailActivity:视频详情页
VideoIntroduceFragment:视频详情页-简介
VideoReplyFragment:视频详情页-评论
VideoReplyFragment:视频详情页-评论
SwitchDetailActivity:短视频详情页
PhotoDetailActivity:图片详情页
PhotoRelayFragment:图片详情页-转发
PhotoReplyFragment:图片详情页-评论
PhotoPraiseFragment:图片详情页-赞
PhotoViewActivity:图片查看器Activity
WebDetailActivity:网页
entry:应用入口,包括启动页、引导页、登录页等
find:发现
home:首页
main:主页
trends:动态
- util:业务相关的工具类,通用的工具可以定义在common库下的util目录
- widget:业务相关的控件类
- adapter:视频全屏播放结束后相关推荐列表对应adapter
- entity:视频Bean类
- player:各类播放器控件
DetailVideoPlayer:详情页播放器
ListVideoPlayer:列表播放器
SwitchVideoPlayer:上下切换播放器
TrendsVideoPlayer:动态播放器
- util:视频相关工具类
- widget:视频相关控件类
- 热门:http://baobab.kaiyanapp.com/api/v5/index/tab/allRec
- 推荐:http://baobab.kaiyanapp.com/api/v5/index/tab/feed
- 推荐-轮播图:http://baobab.kaiyanapp.com/api/v7/index/tab/discovery
- 社区:http://baobab.kaiyanapp.com/api/v7/community/tab/rec
- 周榜:http://baobab.kaiyanapp.com/api/v4/rankList/videos?strategy=weekly
- 月榜:http://baobab.kaiyanapp.com/api/v4/rankList/videos?strategy=monthly
- 总榜:http://baobab.kaiyanapp.com/api/v4/rankList/videos?strategy=historical