Skip to content

BB9z/ZFPlayer

 
 

Repository files navigation

ZFPlayer

原始版本的区别

经过

TL;DR

2016 年初的时候,当时的项目需要加视频的功能,我就在 GitHub 上找 AVPlayer 的壳,调研一番选的 ZFPlayer。当时 ZFPlayer 刚出不到一个月,0.0.5 版本,实现上有点问题但好说,改改能用。

但我认为 renzifeng 的实现在设计上走错了。在提了几个实现问题的 PR 后,我决定在自己的分支上重写。

作为一个通用组件,什么应该由组件提供、什么应该写在 demo 里、什么需要用户来实现,renzifeng 当时没有想明白。比如全屏功能,player 是 view 级别的组件,让它管理自己内部的布局可以,而自身的 frame、导航栏显隐之类的是 view controller 的职责。每个 app 的 UI 都是定制的,是否显示导航、是否有底栏、是否需要额外的空间、甚至是不是需要全屏模式……很多都不一样,作为一个 view 你不可能把所有的这些变化都考虑进来,组件做好组件该做的事,该由 app 来实现的交给 app 来做。

像全屏模式、列表模式,提供一个 demo 给用户一个参考是很好的,写进组件就越俎代庖了,走歪了——控件自己容易出 bug 不说,要在 app 里加正确的处理还得看控件里怎么写得,去做适配……一直走到现在发展成什么样子,看 issues 里一堆抱怨就知道了。

特性:

  • 合理的 AVPlayer 封装,简单、纯粹,没有杂七杂八的功能;
  • UI 与播放控制分离;
  • 一对多的状态通知,便于 view、view controller 可以分别监听控制;
  • 经过千万级产品的考验,在多个项目集成,功能稳定,设计已达到预期。

不会提供:

  • 列表模式
  • 边播边放
  • 下载

通过 CocoaPods 安装

pod 'ZFPlayer', :git => 'https://github.com/BB9z/ZFPlayer.git'

UI 部分并没有包含,你可以拷贝 demo 中的资源并修改以符合自己的项目要求,同时你可能需要重载 Control view 或自己写播放器的 UI。

如需全屏模式请参考 demo 中的 view controller,恰当的处理应当 view controller 来负责。

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Objective-C 97.5%
  • Ruby 2.5%