1.先看一下图层 下:VC.view 中:containerView 上:playerView(button为subview,用于触发旋转操作) 2.真相探究 核心1. rect转换--- [superView convertRect:superView.bounds ...
场景分析 不限于此项目与此应用场景 : 底层:播放器正在播放并展示当前播放进度 : 上层:控制 amp 更新播放进度,拖动进度条,结束拖动,需要知道进度更新到具体时间,用于执行seekToTime 拖动结束时知道当前拖动的位移,根据位移与视频总时间的比例计算seekToTime的值 而 : 就可以通过协议中属性获取,由底层播放器类实现setter和getter方法 demo模拟 .在viewco ...
2018-09-20 15:47 0 780 推荐指数:
1.先看一下图层 下:VC.view 中:containerView 上:playerView(button为subview,用于触发旋转操作) 2.真相探究 核心1. rect转换--- [superView convertRect:superView.bounds ...
1.视频播放器添加到containerView的机制与一个普通播放器页面的不同 普通视频播放页面可以直接添加一个播放器,按照正常逻辑播放、暂停、切换等操作,而视频列表的做法是 用户触发播放动作 当点击一个cell上的播放按钮时,首先判断当前是否有其他cell在播放视频,有则停止播放并移除 ...
核心1. AVPlayerLayer 用于显示视频 核心2. 监听播放相关属性 A. status: AVPlayerStatusReadyToPlay---视频就可以播放了 AVPlayerStatusFailed---视频加载失败 ...
有时候,我们会想在别人的类中添加一个属性.这个属性只会在自己的模块用到,在其它地方无用.那么现在就用两个方案: 1,直接在原类中添加一个属性 2,写一个分类,在分类中将这个属性加进去. 这两种方案实现的异同: 同:都能达到在已有的类中添加一个属性的需求. 异 ...
1.首先在分类文件中导入头文件 #import <objc/runtime.h> 2.实现代码如下: (1).h定义文件 #import <UIKit/UIKit ...
一、背景 前段时间对我们自己的App做了结构上的重构,抛弃了之前简单的MVC开发模式,原因是随着App的业务线越来越多,单个页面的功能越来越复杂,MVC开发模式导致整个Controller-layer的代码越来越多。本文将分享重构中的Router模块。 使用路由模式可以解决我们项目中页面 ...
http://blog.csdn.net/shengyumojian/article/details/44919695 在ios运行过程中,有几种方式能够动态的添加属性。 1-通过runtime动态关联对象 主要用到了objc_setAssociatedObject ...
####4.给分类添加属性 * 原理:给一个类声明属性,其实本质就是给这个类添加关联,并不是直接把这个值的内存空间添加到类存空间。 ``` @implementation ViewController - (void ...