菜单

[iOS]怎样重新架构 JPVideoPlayer ?

2019年9月14日 - Java

作者写了一个给 诺基亚 X 去掉刘海的 应用软件,况兼别的 金立 也得以玩,风乐趣的话去 App Store 看看。点击前往。

图片 1图片 2

导言:作者多少个月前写了三个在 UITableView 中滑动 UITableViewCell 播放摄像的框架,类似于“和讯今日头条” 和 “Instagram(Instagram)” 首页摄像播放。笔者也为率先版本的 JPVideoPlayer 达成写了两篇文章:
01、[iOS]仿博客园录制边下面播之封装播放器 汇报咋样封装贰个完结了边上面播况且缓存的录制播放器。
02、[iOS]仿博客园摄像边上面播之滑动TableView自动播放 陈诉如何贯彻在UITableView中滑动播放摄像,並且是旗开得胜,不封堵线程,未有别的卡顿的完成滑动播放录制。同期也将陈述当UITableView滚动时,以什么样的政策,来规定到底哪四个cell应该播放录像。

随即焦急完成效果与利益,未有留神推敲架构的主题材料,也尚未到头的落成单个功用的组件化。而且由于架构划设想计不足带来一些不可幸免的难点。那个主题素材,1.0
版本的顾客应该负有体会。这段时间独自回了一趟老家,车程相比长,并且能够小心而不被干扰,在车里写了三个2.0 版本。2.0 版本有一点点内容模仿了SDWebImage 的设计。

2.x 版本效果如下:

图片 3

郑璐  九江  核心网络初级七期    原创持续分享第80天

01.JPVideoPlayer Version 2.0 怎样行使?

设想到 API 和架构都重新设计了,极度是 API 整体重新规划,1.0 版本的 API
已经不可能套用了,机智的自家一度做好了被骂得十分惨的心情图谋了。

假定你是新的顾客,就不会受在此以前版本的熏陶。最后不管你是新客商还是老客商,你势必会欣赏这种新的
API 设计的,因为那是当前 iOS 最受迎接的 API 设计。

Objective-C:#import <UIView+WebVideoCache.h>...NSURL *url = [NSURL URLWithString:@"http://lavaweb-10015286.video.myqcloud.com/%E5%B0%BD%E6%83%85LAVA.mp4"];[aview jp_playVideoWithURL:url];

医治师就来访者所呈报的事件,重新讲授,赋予新的正向意义,或是特别重申及影响当中正向的价值,因为SFBT相信任何事情都有正面与反面两面,医治师可以指引来访者看到正向的意义,并且求学重新疏解创伤事件的正向意义。举个例子,来访者对小孩子的叛乱感到失望,诊疗师可以反应:小孩有自己作主性及能面前蒙受权威;来访者因丧妻而无节制饮酒,治疗师能够影响:来访者对老婆的爱与思念;又大概来访者因地震而轻巧想到谢世的政工,医疗师可重新批注为:地震令你起来深思人生中的大事——与世长辞的含义。

02.JPVideoPlayer Version 2.0 内部运行细节?

过多顾客只怕不会不经常光去读源码,然而可能会关注 2.0
版本内部贯彻的部分大的法门,所以那边作者总结了一张 2.0
版本的贯彻大约结构图表,如下:

图片 4

下边小编用文字来表述一下框架之中的周转顺序:

03. JPVideoPlayer Version 2.0 更新了什么样内容?

类名 功能点
JPVideoPlayerDownloaderOperation 下载单个视频文件工具
JPVideoPlayerDownloader 下载工具类,管理下载操作队列
JPVideoPlayerCachePathTool 管理临时和完整视频存储路径
JPVideoPlayerCacheConfig 缓存配置文件,包括缓存周期,最大磁盘缓存等
JPVideoPlayerCache 缓存工具类,负责视频数据的存、取、删、更新
JPVideoPlayerResourceLoader 视频播放器的数据代理,负责将网络视频数据填充给播放器
JPVideoPlayerPlayVideoTool 视频播放工具类
JPVideoPlayerManager 管理者,协调各个模块相互配合工作

接下去自个儿将大要描述一下种种类的落到实处:

04.怎么要如此改?

本条难题小编想从客户和自己要好,还恐怕有它自然应该是怎么样体统那一个维度来剖析。

04.1、客户角度
  • 笔者们对外提供的接口尽量让使用者够用,若无思索到,那顾客就恐怕会来框架里改。
  • 大家的框架类的命名,方法的命名都应该遵守苹果的那套规范,因为大家随时在用的都以苹果
    API,假使完全不遵守苹果那套,那客商来到框架里正是一只雾水,这里有一个关联花费的主题素材,看懂代码以前还要先熟练大家有意识的正统。就像是去美利哥,要和美国人谈话,要先学克罗地亚语。
  • 文书档案绝对要详细,各类人水平都不平等,代码恐怕看不懂,然而文字哪个人都认得,那是作者和客户沟通的功底。
04.2、小编角度

保护框架其实也是很花时间的一件事情,1.0
版本的时候,就时一时有顾客给本身留言,发QQ音讯和自身联系促成的内情,还要他们期待下个本子希望加进去的有的作用。

当时数不完功力的代码都混在三个类里,第一正是其一类上千行代码,我要好要改二个东西都亟需用寻找效果技能找到,各类艺术之间交互调用的时候跳来跳去,头晕眼花。

今昔种种模块划分完功效以后,每一种功效的中央代码都中度集中在相应的类里,遮蔽达成的内部意况,屏蔽了外界的干扰,只对外提供供给的接口。未来调节和测验难题的时候,剖判到出现难题也许的模块然后,能高效稳固到对应类的附和措施里,只须求在现阶段类里潜心当前的主题材料就能够了,无需考虑外表的熏陶。那么些效用的进级照旧蛮明显的。

之所以从作者的角度,那么些架构的受益正是,第一,方便作者中期的保卫安全,进步功用;第二,方便和客商的维系,减少沟通花费;第三,当有新效能的时候,笔者能极快的把代码写到对应的体系里。

04.3、它自然的样子

如今看 BBC 的 “Planet Earth”
纪录片,里面说蚂蚁巢穴里有几千万只蚂蚁,可是却分工鲜明,秩序尽然。原本,蚂蚁分为四类:

我们的代码或者也足以如法泡制大自然,先划分功用,再列出多少个类,将功效点挨个集中到类里,武装出类,正是所谓的指标。那正是本身通晓的框架应该有个别美。

05.Update.

2017.04.04 更新.

图片 5

2017.05.31 更新:

图片 6

2017.05.02 更新.有些朋友反应有个别摄像不能够边上面播, 具体消除思路请参考那篇博文 。

下边这些链接是本人具有小说的二个凑集目录。这个小说凡是涉及实现的,每篇小说中都有Github 地址,Github 上都有源码。

自个儿的篇章集结索引

您还足以关怀我要好维护的简书专项论题 iOS开垦心得。那些专项论题的作品都以真性的干货。固然你有标题,除了在文章末了留言,还足以在微博 @盼盼_HKbuy上给自个儿留言,以及走访我的 Github。

您这一增加接济,我写的就更来劲了!

微信赞助扫码

图片 7

支付宝赞助扫码

图片 8

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图