iOS16 以后 通过原始横屏的方法已经不好使了,需要在此基础上添加 setNeedsUpdateOfSupportedInterfaceOrientations 方法的调用,具体API 描述如下:

回到主题,在使用ZFPlayer 视频库全屏播放时iOS16系统下的处理参考如下:

//进入全屏播放事件
self.player.orientationWillChange = {[weak self] (player,isFullScreen) inguard let self = self else { return }if isFullScreen {var _title = self.model?.title ?? ""if self.model?.authorize == 0 {_title += "(试看\(Int(Setting.shareInstance.K_APP_TRY_WATCH_INTERVAL/60))分钟)".replacingOccurrences(of: "\r", with: "")}if self.isVertical {self.controlView.portraitControlView.showTitle(_title, fullScreenMode: .portrait)}else{self.isAutorotate = trueself.faceOrientation = .landscapeRightif #available(iOS 16.0, *) {//横屏self.setNeedsUpdateOfSupportedInterfaceOrientations()self.player.addPlayerView(toContainerView: UIApplication.shared.windows.first!)} else {// Fallback on earlier versionsself.player.containerView = UIApplication.shared.windows.first!}self.controlView.landScapeControlView.showTitle(_title, fullScreenMode: .landscape)}}
}//MARK: - 设备方向处理
extension StudyCourseDetailsViewController {override var shouldAutorotate: Bool {get {return self.isAutorotate}}override var supportedInterfaceOrientations: UIInterfaceOrientationMask {get {return self.faceOrientation}}}

退出全屏的方法,无需调整,具体参考如下:

//退出全屏被点击(全屏返回按钮被点击)
self.playerControlView.backBtnClickCallback = {[weak self] inguard let self = self else { return }if self.isVertical == false {self.isAutorotate = falseself.faceOrientation = .portraitself.player.rotate(to: .portrait, animated: true) {print("已返回小屏")}self.player.containerView = self.videoPlayerView}self.player.enterFullScreen(false, animated: true)
}

更多关于iOS16 兼容性处理,参考:XCode14 & iOS16 适配问题汇总

ZFPlayer iOS16 系统横屏全屏问题处理相关推荐

  1. Android 横屏+全屏

    横屏: 1.在mainfest.xml上加: 你所指定的activity中加上android:screenOrientation属性 "unspecified":默认值 由系统来推 ...

  2. Mac osx系统中virtual box 中的Ubuntu系统的全屏显示问题解决

    Mac osx系统中virtual box 中的Ubuntu系统的全屏显示问题解决 一 安装virtualBox工具 安装失败 其他尝试方法 一 安装virtualBox工具 选择Insert Gue ...

  3. Android VideoView播放 项目中的 视频文件 自动横屏 全屏播放

    记录最近遇到的一个android播放视频的需求: APP主页上方有一个操作演示字样的入口,点击后开始播放一段视频,视频文件是放在工程里的. 话说以前还没做过类似播放视频的功能,根据以往的经验来看,最简 ...

  4. 解决魅族17横屏全屏会有白边问题

    问题描述:魅族17横屏显示时,右侧导航栏会出现白色 在Android P版本中,通过DisplayCutout 类,可以确定非功能区域(刘海屏)的位置和形状 使用layoutInDisplayCuto ...

  5. Cocos Creator safari浏览器横屏全屏如何隐藏地址栏?

    safar浏览器中只有一个Creator网页,横屏后会自动全屏, 但是如果有多个网页,Creator网页横屏后safar浏览器无法全屏.关于此问题,解决文案如下,供大家参考 一.将项目打包,找到打包出 ...

  6. windows7 系统游戏全屏显示

    有很多朋友在玩游戏的时候,在w7系统下都会出现不是全屏的显示,就算打开全屏显示也是,那就可以时一下下面的方法:   1,windows+r  输入regedit 打开注册表,找到以下参数 HKEY_L ...

  7. Vm下设置系统显示全屏

    由于经常使用vm下的linux中的操作,每次操作都是持续一段时间,要是装双系统,切换又不方便,所以使用vm中的linux系统的时候,希望能够全屏,就像硬盘安装中一样 步骤: 1.      安装VMT ...

  8. 在VMware上装苹果系统后全屏

    2019独角兽企业重金招聘Python工程师标准>>> 虚拟机装完苹果会发现分辨率只有一个,不能全屏,看起来很别扭,这时需要tool来引导下就能全屏了 工具/原料 darwin.is ...

  9. 移动端echarts点击全屏按钮横屏全屏展示

    在遮罩层显示全屏图表 <div class="fullScreen"><van-overlay lock-scroll :show="isFull&qu ...

最新文章

  1. 网页制作之JavaScript部分3--事件及事件传输方式(函数调用 练习题 )重要---持续更新中...
  2. rejection from Cambridge Machine Learning and Machine Intelligence MPhil
  3. java参数传入泛型类型_Java泛型参数界定到任何一个类型的范围
  4. OpenCV之图像的遮挡与切分、合并(笔记06)
  5. Excel比较工具SpreadSheet
  6. Cloud Container Service experimentation
  7. s5p4418安卓系统适配fpc8563芯片遇到的问题及解决
  8. python 规则引擎 drools_Drools 规则引擎环境搭建
  9. This Week in Spring - July 9, 2013
  10. 脚本--给win10下载的哔哩哔哩视频进行重命名
  11. AutoSar CAN网络管理状态机理解
  12. Linux 下使用 sem_t 有名信号量的注意事项
  13. 金融行业必看20部电影
  14. 微信支付应用签名大小写、errorCode=-6,errorCode=-1
  15. 日语中那些表示复数概念的表达方式
  16. 最新联发科MTK射频芯片资料集锦
  17. html5音乐和歌词同步,HTML5实现歌词同步
  18. LCD1602 通过转接板 i2c显示
  19. 回归本质,虚拟资源如何利用电商平台,0成本挂机也能月入过万
  20. 云加速——主机安全软件

热门文章

  1. centos 安装卸载功能
  2. MAC卸载干净postgresql
  3. 用CorelDRAW等分分割图片的教程
  4. 离线数仓建设,企业大数据的业务驱动与技术实现丨03期直播回顾
  5. 安装数据库MySQL 8.0.20.0 详细过程 小白安装
  6. Nginx正向代理任何域名的实现
  7. java-swing做的客户端聊天软件
  8. 生存分析(survival analysis)
  9. CV目标检测 Task04:不讲武德-炼丹与品尝 终于,神功初成,可以开始施展拳脚了 打卡笔记
  10. 使用RMAN传输数据_复制数据库