如何在 iOS 8 和 Swift 中播放电影时旋转 MPMoviePlayer?

How do I rotate MPMoviePlayer as the movie is playing in iOS 8 with Swift?

我想提出并回答我自己的问题,以防其他人发现它有帮助。

使用

,moviePlayer 将开始按预期正常播放
moviePlayer.view.frame = self.view.bounds

但是,当在电影中间旋转时,tabBar 会旋转,但 moviePlayer 不会。这将裁剪电影屏幕的一部分,或者它不会像最初预期的那样改变以填满整个屏幕。

在 func viewDidLoad() 中添加此通知服务:

NSNotificationCenter.defaultCenter() .addObserver(self, selector: "movieOrientationChanged", name: UIDeviceOrientationDidChangeNotification, object: nil)

并且,这是响应该通知的方法(moviePlayer 是一个 class MPMoviePlayerController 类型的变量):

func movieOrientationChanged() {
     moviePlayer!.view.frame = self.view.bounds 
}

for swift 4 在viewDidLoad中添加这段代码

NotificationCenter.default .addObserver(self, selector: #selector(VideoViewViewController.movieOrientationChanged), name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil)