使用AVPlayer自定义支持全屏的播放器(二)
来源:互联网 发布:js window.open 参数 编辑:程序博客网 时间:2024/06/07 02:41
前言
前段时间封装了一个视频播放器,由于时间匆忙,还有很多问题以及细节还没有来得及修改,最近挤了一点时间,将播放器完善了一下,具体思路请参考使用AVPlayer自定义支持全屏的播放器(一),本篇文章主要讲解如何在tableView
上面使用。
思路
播放器播放视频肯定会占用内存,如果每一个cell
建立一个播放器,会占用不少的内存,所有全局只建立一个播放器,当播放器所在cell
滑出屏幕,将播放器销毁。
使用代码
当点击cell
时,创建播放器,并且添加到当前cell
上。因为全局只有一个播放器,并且需要在滑动的时候动态计算当前播放器所在cell
的位置,所以使用代理将被点击的cell
传回所在控制器做相应的处理。不需要播放器的时候记得销毁播放器,用以释放内存。
#pragma mark - 点击播放代理- (void)PlayVideoWithCell:(TableViewCell *)cell;{ //记录被点击的cell _cell = cell; //销毁播放器 [_playerView destroyPlayer]; _playerView = nil; _playerView = [[CLPlayerView alloc] initWithFrame:CGRectMake(0, 0, cell.width, cell.height)]; [cell.contentView addSubview:_playerView]; //根据旋转自动支持全屏,默认支持 // playerView.autoFullScreen = NO; //重复播放,默认不播放 // playerView.repeatPlay = YES; //如果播放器所在页面支持横屏,需要设置为Yes,不支持不需要设置(默认不支持) // playerView.isLandscape = YES; //视频地址 _playerView.url = [NSURL URLWithString:cell.model.videoUrl]; //播放 [_playerView playVideo]; //返回按钮点击事件回调 [_playerView backButton:^(UIButton *button) { NSLog(@"返回按钮被点击"); }]; //播放完成回调 [_playerView endPlay:^{ //销毁播放器 [_playerView destroyPlayer]; _playerView = nil; NSLog(@"播放完成"); }];}
在tableView
滑动代理中,需要使用- (void)calculateWith:(UITableView *)tableView cell:(UITableViewCell *)cell beyond:(BeyondBlock) beyond
方法,将tableView
和播放器所在cell
传递给播放器,播放器会在内部计算播放器所在位置,在超出屏幕的时候,会调用超出范围的block
,在block
回调中对播放器销毁。
#pragma mark - 滑动代理- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ [_playerView calculateWith:self.tableView cell:_cell beyond:^{ //销毁播放器 [_playerView destroyPlayer]; _playerView = nil; }];}
播放器效果图
Demo地址
Demo地址---->CLPlayer 如果喜欢,欢迎star。
文/枫叶流转(简书作者)
原文链接:http://www.jianshu.com/p/83191c7bc840
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文链接:http://www.jianshu.com/p/83191c7bc840
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
0 0
- 使用AVPlayer自定义支持全屏的播放器(二)
- 使用AVPlayer自定义支持全屏的播放器(一)
- ios 使用AVPlayer自定义视频播放器
- ios 使用AVPlayer自定义视频播放器
- CYC-AVPlayer播放器的简单使用
- AVPlayer自定义视频播放器
- 基于AVPlayer 自定义播放器
- 基于 AVPlayer 自定义播放器
- iOS中使用AVPLayer自定义视频播放器
- 视频播放AVPlayer的使用
- iOS AVPlayer支持播放的格式
- iOS 使用AVPlayer自定义的播放器,当手机在静音模式播放器也静音的解决方法!
- iOS基于AVPlayer自定义播放器
- 视频播放器(AVPlayer)
- 基于AVPlayer的音乐播放器,支持上下曲,随机播放,后台播...
- AVPlayer视频播放的使用简介
- 使用AVPlayer播放视频
- 基于AVPlayer简单封装的播放器
- Hibernate 学习笔记 之 HQL 内连接和迫切内连接
- 动态设置控件高度
- String处理2
- oracle 递归1:oracle connect by用法
- SpringMVC基础_ControllerAdvice
- 使用AVPlayer自定义支持全屏的播放器(二)
- java获取当前时间的前一个小时
- Toast还能显示图片你知道么?
- centos下安装jdk 还没有验证
- Java反射详解
- android ScrollView嵌套RecyclerView
- 简单的线程消息队列实现
- 安卓三状态切换按钮TriStateToggleButton
- C语言回调函数学习