Ich habe einen UIViewcontroller, der einen AVPlayerViewController mit AVPlayer enthält. Ich möchte die Rotation für AVPlayerViewController aktivieren (wenn das Video im Vollbildmodus ist) und jede Drehung für UIViewController deaktivieren. Wie kann ich die Rotation nur für Videos (auf Vollbild) in meiner App aktivieren?iOS: AVPlayerViewController aktivieren Vollbild-Rotation in Hochformat-Anwendung
Antwort
Swift 2.2 In AppDelegate mehr dazu hier sehen Drehung für den Spieler zu ermöglichen:
func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {
guard let vc = (window?.rootViewController?.presentedViewController) else {
return .Portrait
}
if (vc.isKindOfClass(NSClassFromString("AVFullScreenViewController")!)) {
return .AllButUpsideDown
}
return .Portrait
}
als erstellen und Unterklasse von AVPlayerViewController für zurück zu Portrait-Modus verwenden, wenn der Spieler Vollbildmodus beenden :
class YourVideoPlayer: AVPlayerViewController {
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
if view.bounds == contentOverlayView?.bounds {
UIDevice.currentDevice().setValue(UIInterfaceOrientation.Portrait.rawValue, forKey: "orientation")
}
}
Super! Wo hast du die Informationen über Avplayer gefunden? –
Sie müssen die zulässigen Rotationen auf der Projektebene aktivieren und dann die Rotation auf alle ViewControllers beschränken, die NICHT gedreht werden sollen. Wenn Sie also 5 viewControllers haben, müssen Sie die Rotation auf 4 davon beschränken und nur die Drehung auf dem Player-Controller erlauben. Sie können Handling autorotation for one view controller in iOS7
Für mich war das besser. erstrecken sich nur AVPlayerViewController:
import AVKit
import UIKit
class AVPlayerViewControllerRotatable: AVPlayerViewController {
override var shouldAutorotate: Bool {
return true
}
}
Swift 4
Haben Sie implementiert 'supportedInterfaceOrientations' angemessen? – matt
@matt Ich gebe nur UIInterfaceOrientationMaskPortrait in supportedInterfaceOrientations -Methode zurück. UIViewController rotiert nicht und AVPlayer zu. – ton252