iOS视频播放解决方案
此文章主要讲解项目中视频播放测试过程中遇到的问题,解决方案以及视频播放功能的封装DEMO;
1.整个应用的要求是竖屏,但是在视频播放界面要求可以转动屏幕
解决方案1:设置全局无法转动,仅支持竖屏,在视频界面时候检测屏幕转动,然后旋转重置视频界面视图
注册检测屏幕旋转通知:[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientChange:) name:UIDeviceOrientationDidChangeNotification object:nil];
实现方法:
此方案需要在界面布局上下文章,试图旋转后控件的布局需要调整,而且存在一个问题,状态栏旋转方法没有找到,只能在横屏的时候隐藏状态栏,好处是整个app都旋转状态不需要调整,不会对其他界面布局造成影响
补充:状态栏风格调整和隐藏方法,在控制器中重写方法
风格调整(黑色和白色)-(UIStatusBarStyle)preferredStatusBarStyle{
1.return UIStatusBarStyleLightContent;//白色
2.return UIStatusBarStyleDefault;//黑色
}
隐藏:-(BOOL)perfersStatusHidden{
return YES;//隐藏
return NO;//不隐藏
}
方案2:在AppDelegate中设置界面是否旋转,在视频界面的时候改变参数让应用可旋转,然后当视频界面消失时候再将参数改回来让应用不可旋转
在AppDelegate中重写方法:
_allowRotation 是AppDelegate的属性,方便改变选装状态
然后在视频控制器-(void)viewDidLoad方法中,将allowRotation设置成 1
再在视频控制器-(void)dealloc方法中,将allowRotation重新设置成 0
重写方法-(void)viewWillLayoutSubviews来检测屏幕转动,并且刷新界面布局
注意在点击返回键的时候,当屏幕处于横屏状态的时候需要将横屏变成竖屏,不让其他界面布局会受到影响
下面附上个人封装的视频播放功能: