【发布时间】:2014-12-22 00:38:01
【问题描述】:
我的应用是仅纵向应用,但我有一个使用 AVPlayerViewController 显示实时流的视图控制器。
为了让该播放器的全屏视图允许横向显示,我在 AppDelegate.swift 中编写了这个方法:
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> Int {
var orientation = UIInterfaceOrientationMask.Portrait
if let presentedController = window?.rootViewController?.presentedViewController? {
if presentedController.isKindOfClass( NSClassFromString("AVFullScreenViewController").self ) {
orientation = .AllButUpsideDown
} else if let navController = presentedController as? UINavigationController {
if navController.topViewController.isKindOfClass( NSClassFromString("AVFullScreenViewController").self ) {
orientation = .AllButUpsideDown
}
}
}
return Int(orientation.rawValue)
}
这就是我所说的初始化我的 AVPlayer:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showLiveStream" {
SVProgressHUD.show()
var queue: dispatch_queue_t = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
dispatch_async(queue, {
let streamURL = NSURL(string: liveStreamURL)
let playerItem = AVPlayerItem(URL: streamURL)
let player = AVPlayer(playerItem: playerItem)
dispatch_async(dispatch_get_main_queue(), {
SVProgressHUD.dismiss()
var playerViewController = segue.destinationViewController as AVPlayerViewController
playerViewController.player = player
})
})
}
}
问题:当我打开播放器的全屏视图,然后更改为横向,然后单击“完成”以关闭全屏视图时,我的应用程序仍处于横向状态。但我希望它再次旋转到纵向。我该怎么做?
【问题讨论】:
-
你是用你的
AVFullScreenViewController类继承AVPlayerViewController吗? -
@LaurentRivard 不,
AVFullScreenViewController类是 AVKit 等价于MPInlineVideoFullscreenViewController运行时类。
标签: ios swift orientation fullscreen avplayer