gpt4 book ai didi

ios - 仅纵向应用程序中的 AVPlayerViewController 全屏旋转行为

转载 作者:搜寻专家 更新时间:2023-10-31 22:17:55 27 4
gpt4 key购买 nike

当将 AVPlayerViewController 嵌入仅竖屏 iOS 应用程序时,如果在设备处于横向时全屏播放视频,则当播放器退出全屏时,应用程序似乎会卡在奇怪的布局中。

这是错误还是我做错了什么?

此处介绍了如何使用 Xcode 9.4.1、swift 4、iOS 11.4、模拟器或物理设备重现干净的项目。

ViewController.swift

override func viewDidLoad() {
super.viewDidLoad()

//Create the player and add as child view controller
let playerVC = AVPlayerViewController()
self.addChildViewController(playerVC)

//Place player's view in self
playerVC.view.frame = CGRect(x: 10, y: 40, width: 355, height: 200)
self.view.addSubview(playerVC.view)

//Load example video
playerVC.player = AVPlayer(url: URL(string: "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4")!)
}

它的正常工作方式:

  • 播放视频,全屏
  • 旋转为横向,视频旋转
  • 关闭全屏,无论屏幕或设备方向如何,应用都会返回纵向
  • 例如:https://imgur.com/a/MPFmzyH

它是如何 splinter 的:

  • 播放视频,将设备旋转到横向(屏幕不旋转)
  • 点击全屏
  • 退出全屏
  • 屏幕中断,旋转不修复
  • 例如:https://imgur.com/a/hDdmu20

最佳答案

当您离开播放器全屏时,您将进入 View Controller 的 viewWillAppear。所以在 viewWillAppear 中尝试将窗口框架设置为等于屏幕边界。

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
appDelegate.window?.rootViewController?.view.frame = UIScreen.main.bounds
}

关于ios - 仅纵向应用程序中的 AVPlayerViewController 全屏旋转行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50977823/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com