【发布时间】:2018-06-21 21:44:22
【问题描述】:
在仅纵向 iOS 应用中嵌入 AVPlayerViewController 时,如果在设备保持横向时全屏播放视频,则当播放器退出全屏时,应用似乎会卡在奇怪的布局中。
这是一个错误还是我做错了什么?
以下是使用 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
它是如何破坏的:
- 播放视频,将设备旋转为横向(屏幕不旋转)
- 点击全屏
- 退出全屏
- 屏幕中断,旋转无法修复
- 例如:https://imgur.com/a/hDdmu20
【问题讨论】:
-
您找到解决方案了吗?
-
@RafaelaLourenço 实际上不,这似乎是一个平台错误,或者您不应该嵌入 AVPlayerViewController (这对我来说没有意义,因为它上面有一个全屏按钮)。我认为 Nabil 的答案是可行的,但它绝对是一个 hack。
-
感谢您的回答.. 这似乎真的是一个错误。我希望苹果尽快修复。
-
不管怎样,iOS12 似乎已经解决了这个问题。