Skip to content

xuzhb24/BiliPlayer

Repository files navigation

前言

因为觉得哔哩哔哩的播放器UI和设计挺不错的,所以就模仿哔哩哔哩播放器部分搭建了一个大体的框架,自己做了一个视频应用,先看一下效果。

效果图

screenshot1 screenshot2 screenshot3
screenshot4 screenshot5 screenshot6
screenshot7 screenshot8 screenshot9
screenshot10 screenshot11 screenshot12

如果图片加载不出来的话,可以直接查看screenshot目录里面的截图,在screenshot目录里面也有一个BiliPlayer.apk,可以直接安装体验。

项目说明

项目采用MVVM开发模式,使用Kotlin + Retrofit + 协程 + ViewModel + LiveData进行开发,视频播放接入GSYVideoPlayer,视频Api使用了开眼的Api,特此感谢!

项目结构

包含3个模块:universal(公共sdk)、app(主要模块)、video(视频模块)

主要的类说明

universal目录说明

  • 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:自定义控件

app目录说明

  • 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:业务相关的控件类

video目录说明

  • adapter:视频全屏播放结束后相关推荐列表对应adapter
  • entity:视频Bean类
  • player:各类播放器控件
DetailVideoPlayer:详情页播放器
ListVideoPlayer:列表播放器
SwitchVideoPlayer:上下切换播放器
TrendsVideoPlayer:动态播放器
  • util:视频相关工具类
  • widget:视频相关控件类

项目Api

首页

动态

视频详情页

特别声明:本项目只做学习用,不做其他用途!!!

About

仿哔哩哔哩播放器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published