此库提供了一个基于AVPlayer
的视频播放器,具有UITableView
的缓存支持。
特性
- 在播放时缓存视频数据。
- 支持快速查找时间(新)。
- 支持断点续传(新)。
- 支持横屏自动布局(新)。
- 支持自定义播放器控制视图(新)。
- 卓越的性能!
- 保证相同的URL不会重复下载几次
- 保证主线程永远不会被阻塞
- 支持位置视频播放
- 支持Swift
要求
- iOS 8.0或更高版本
- Xcode 7.3或更高版本
入门
- 阅读[iOS]JPVideoPlayer 3.0 使用介绍
- 阅读[iOS]JPVideoPlayer 3.0 源码解析
- 阅读[iOS]仿微博视频边下边播之封装播放器
- 阅读[iOS]仿微博视频边下边播之滑动TableView自动播放
- 阅读[iOS]从使用 KVO 监听 readonly 属性说起
- 阅读[iOS]如何重新架构 JPVideoPlayer ?
- 通过从GitHub下载项目来尝试示例
如何使用
01.播放视频。
1.1.静音播放视频,并在UITableViewCell或任何视图中显示进度视图。
NSURL *url = [NSURL URLWithString:@"http://p11s9kqxf.bkt.clouddn.com/bianche.mp4"];
[aview jp_playVideoMuteWithURL:url
bufferingIndicator:nil
progressView:nil
configuration:nil];
1.2.当用户选择UITableViewCell时从UITableViewController恢复静音播放到详细UIViewController。
NSURL *url = [NSURL URLWithString:@"http://p11s9kqxf.bkt.clouddn.com/bianche.mp4"];
[aview jp_resumeMutePlayWithURL:url
bufferingIndicator:nil
progressView:nil
configuration:nil];
1.3.播放视频并显示控制视图和进度视图。
NSURL *url = [NSURL URLWithString:@"http://p11s9kqxf.bkt.clouddn.com/bianche.mp4"];
[aview jp_playVideoWithURL:url
bufferingIndicator:nil
controlView:nil
progressView:nil
configuration:nil];
1.4.显示控制视图和进度视图后恢复播放。
NSURL *url = [NSURL URLWithString:@"http://p11s9kqxf.bkt.clouddn.com/bianche.mp4"];
[aview jp_resumePlayWithURL:url
bufferingIndicator:nil
controlView:nil
progressView:nil
configuration:nil];
1.5.无控制视图和进度视图播放视频。
NSURL *url = [NSURL URLWithString:@"http://p11s9kqxf.bkt.clouddn.com/bianche.mp4"];
[aview jp_playVideoWithURL:url
options:kNilOptions
configuration:nil];
1.6. 无控制视图 & 进度视图的恢复播放。
NSURL *url = [NSURL URLWithString:@"http://p11s9kqxf.bkt.clouddn.com/bianche.mp4"];
[aview jp_resumePlayWithURL:url
options:kNilOptions
configuration:nil];
2.横竖屏控制
2.1. 进入横屏。
[aview jp_gotoLandscape];
[aview jp_gotoLandscapeAnimated:YES completion:nil];
2.2. 进入竖屏。
[aview jp_gotoPortrait];
[aview jp_gotoPortraitAnimated:YES completion:nil];
UITableView
中播放视频。
3. 在像微博那样的在UITableView
中播放视频支持等高和不等高单元格,你可以直接在UITableView
上使用分类方法。你还应该准确地设置jp_tableViewVisibleFrame
,以确保在屏幕中心最近的单元格上播放视频。
[tableView jp_playVideoInVisibleCellsIfNeed];
[tableView jp_handleCellUnreachableTypeInVisibleCellsAfterReloadData];
[tableView jp_handleCellUnreachableTypeForCell:cell
atIndexPath:indexPath];
[tableView jp_scrollViewDidScroll];
[tableView jp_scrollViewDidEndDraggingWillDecelerate:decelerate];
[tableView jp_scrollViewDidEndDecelerating];
4. 自定义控制视图 & 进度视图 & 缓冲指示器。
此库提供了基本JPVideoPlayerProgressView
、JPVideoPlayerBufferingIndicator
、JPVideoPlayerControlView
,因此你可以在播放视频方法中传递nil。你可以继承这些基本类来自定义自己的UI,你也可以不继承它们,直接使用你自己的UI,但你必须实现JPVideoPlayerControlProgressProtocol
、JPVideoPlayerBufferingProtocol
、JPVideoPlayerProtocol
中的方法。
5. 缓存管理。
[JPVideoPlayerCache.sharedCache calculateSizeOnCompletion:^(NSUInteger fileCount, NSUInteger totalSize) {
// do something.
}];
[JPVideoPlayerCache.sharedCache clearDiskOnCompletion:^{
// do something
}];
安装
您可以在项目中使用 JPVideoPlayer
的两种方式
- 使用 CocoaPods
- 通过将项目克隆到您的仓库中
使用 CocoaPods 进行安装
CocoaPods 是 Objective-C 的依赖管理器,它自动化并简化了在项目中使用第三方库的过程。请参阅入门部分以获取更多详细信息。
Podfile
platform :ios, '8.0'
target "YourProjectName" do
pod 'JPVideoPlayer'
end
沟通
- 如果您 发现了错误,请创建一个 issue。
- 如果您 有功能请求,请创建一个 issue。
- 如果您 希望贡献,请提交一个 pull request。
许可
所有源代码均采用 MIT 许可证 许可。
架构
赞助
你的这一赞助,让我写得更有动力了!