Skip to content

Latest commit

 

History

History
187 lines (140 loc) · 6.19 KB

README.zh.md

File metadata and controls

187 lines (140 loc) · 6.19 KB

ZFPlayer

基于AVPlayer,支持竖屏、横屏(横屏可锁定屏幕方向),上下滑动调节音量、屏幕亮度,左右滑动调节播放进度

ZFPlayer剖析  哪些app使用ZFPlayer

特性

  • 支持横、竖屏切换,在横屏模式下可以锁定屏幕方向
  • 支持本地视频、网络视频播放
  • 支持在TableviewCell播放视频
  • 左侧1/2位置上下滑动调节屏幕亮度(模拟器调不了亮度,请在真机调试)
  • 右侧1/2位置上下滑动调节音量(模拟器调不了音量,请在真机调试)
  • 左右滑动调节播放进度
  • 全屏状态下拖动slider控制进度,显示视频的预览图
  • 断点下载功能
  • 切换视频分辨率

要求

  • iOS 7+
  • Xcode 8+

组件

安装

CocoaPods

pod 'ZFPlayer'

Then, run the following command:

$ pod install

使用 (支持IB和代码)

设置状态栏颜色

请在info.plist中增加"View controller-based status bar appearance"字段,并改为NO

IB用法

直接拖UIView到IB上,View类改为ZFPlayerView

// 初始化控制层view(可自定义)
ZFPlayerControlView *controlView = [[ZFPlayerControlView alloc] init];
// 初始化播放模型
ZFPlayerModel *playerModel = [[ZFPlayerModel alloc] init];
// playerView的父视图
playerModel.fatherView = ...;
playerModel.videoURL = ...
playerModel.title = ...
[self.playerView playerControlView:controlView playerModel:playerModel];
// 设置代理
self.playerView.delegate = self;
// 自动播放
[self.playerView autoPlayTheVideo];

ZFPlayerDelegate

/** 返回按钮事件 */
- (void)zf_playerBackAction;
/** 下载视频 */
- (void)zf_playerDownload:(NSString *)url;
代码实现(Masonry)用法
self.playerView = [[ZFPlayerView alloc] init];
[self.view addSubview:self.playerView];
[self.playerView mas_makeConstraints:^(MASConstraintMaker *make) {
 	make.top.equalTo(self.view).offset(20);
 	make.left.right.equalTo(self.view);
	// 这里宽高比16:9,可以自定义视频宽高比
	make.height.equalTo(self.playerView.mas_width).multipliedBy(9.0f/16.0f);
}];

// 初始化控制层view(可自定义)
ZFPlayerControlView *controlView = [[ZFPlayerControlView alloc] init];
// 初始化播放模型
ZFPlayerModel *playerModel = [[ZFPlayerModel alloc]init];
playerModel.videoURL = ...
playerModel.title = ...
[self.playerView playerControlView:controlView playerModel:playerModel];

// 设置代理
self.playerView.delegate = self;
// 自动播放
[self.playerView autoPlayTheVideo];
设置视频的填充模式
 // 设置视频的填充模式,内部设置默认(ZFPlayerLayerGravityResizeAspect:等比例填充,直到一个维度到达区域边界)
 self.playerView.playerLayerGravity = ZFPlayerLayerGravityResizeAspect;
是否有断点下载功能
 // 下载功能,如需要此功能设置这里
 self.playerView.hasDownload = YES;
从xx秒开始播放视频
// 从xx秒开始播放视频
playerModel.seekTime = 15;
是否自动播放,默认不自动播放
// 是否自动播放,默认不自动播放
[self.playerView autoPlayTheVideo];
设置播放前的占位图
// 设置播放前视频占位图
// 如果网络图片和本地图片同时设置,则忽略本地图片,显示网络图片
ZFPlayerModel *playerModel = [[ZFPlayerModel alloc]init];
// 本地图片
playerModel.placeholderImage = [UIImage imageNamed: @"..."];
// 网络图片
playerModel.placeholderImageURLString = @"https://xxx.jpg";
self.playerView.playerModel = playerModel;

图片效果演示

图片效果演示

声音调节演示

亮度调节演示

快进快退演示

进度调节预览图

参考链接:


Swift版Player:

请移步 BMPlayer,感谢 BMPlayer 作者的开源。


联系我

广告时间

有不错的iOS职位可以联系我,坐标北京,谢谢!!

License

ZFPlayer is available under the MIT license. See the LICENSE file for more info.