/*
当在做视频播放器的时候 , 需要对播放视频的那个view进行旋转操作 , 当控制中心 ( 上拉的那个菜单 ) 开启旋转屏幕 , 点击全屏按钮或把手机横屏 视图都会全屏 , 全屏状态下 , 点击退出全屏按钮或将屏幕旋转到正方向 , 视图都会退出全屏 ; 如果控制中心关闭旋转屏幕 , 旋转屏幕不再能用 , 但进入和退出全屏按钮都是能用的
在这期间 , 状态条也是要改变方向的 , 而且是一直显示的 , 现在专业做视频的 APP 都是这样的 , 下面是怎样实现的屏幕旋转的这一块 :
1. 方案 1 : 强制旋转屏幕 + SizeClasses 这个需要调用私有 API( 审核可能被拒绝 ), 而且现在私有 API 有的也不能用了 , 无法强制退出横屏 , 所以这个方案不可以 ;
2. 方案 2 : 这就是我即将说的这个 , 主流视频 APP 都是这么做的 , 一开始我做播放器的时候先就差这一点没有解决 , 蛋疼了好几天 , 现在终于全都解决了 , 以后可能会发 AVPlayer 视频播放的博客 , 包括音量 . 亮度 . 手势等等 , 不过下一篇我还是会总结一些旋转屏幕时遇到的各种问题 ;
当在做视频播放器的时候 , 需要对播放视频的那个view进行旋转操作 , 当控制中心 ( 上拉的那个菜单 ) 开启旋转屏幕 , 点击全屏按钮或把手机横屏 视图都会全屏 , 全屏状态下 , 点击退出全屏按钮或将屏幕旋转到正方向 , 视图都会退出全屏 ; 如果控制中心关闭旋转屏幕 , 旋转屏幕不再能用 , 但进入和退出全屏按钮都是能用的
在这期间 , 状态条也是要改变方向的 , 而且是一直显示的 , 现在专业做视频的 APP 都是这样的 , 下面是怎样实现的屏幕旋转的这一块 :
1. 方案 1 : 强制旋转屏幕 + SizeClasses 这个需要调用私有 API( 审核可能被拒绝 ), 而且现在私有 API 有的也不能用了 , 无法强制退出横屏 , 所以这个方案不可以 ;
2. 方案 2 : 这就是我即将说的这个 , 主流视频 APP 都是这么做的 , 一开始我做播放器的时候先就差这一点没有解决 , 蛋疼了好几天 , 现在终于全都解决了 , 以后可能会发 AVPlayer 视频播放的博客 , 包括音量 . 亮度 . 手势等等 , 不过下一篇我还是会总结一些旋转屏幕时遇到的各种问题 ;
(首先确定你的程序info.plist添加了要旋转的方向)
*/
@interface LRLAVPlayerController ()
@end
@implementation LRLAVPlayerController
// 懒加载的方式来获取一个默认的 model, 用来模拟视频的尺寸 ;
-( AVPlayerModel
*/
@interface LRLAVPlayerController ()
//用来播放视频的view
@property
(
nonatomic
,
strong
)
LRLAVPlayerView
* avplayerView;
//用来存储这个view的尺寸, 为了模拟存储视频信息的的model
@property
(
nonatomic
,
strong
)
AVPlayerModel
* avModel;
//view的高度
@property
(
nonatomic
,
assign
)
CGFloat
videoHeight;
@end
@implementation LRLAVPlayerController
// 懒加载的方式来获取一个默认的 model, 用来模拟视频的尺寸 ;
-( AVPlayerModel