2017-08-10 61 views
2

標題幾乎一切都說明,但在這裏崩潰... 要在我的應用程序播放視頻,我使用它我提出模態AVPlayerViewController詳細攻時的媒體選擇按鈕,在景觀上的iPhone加上設備

的AVPlayerViewController
let player = AVPlayer.init(url: url) 
let playerViewController = AVPlayerViewController.init() 
playerViewController.player = player 
parentViewController.present(playerViewController, animated: true, completion: {...}) 

所有工作正常,視頻以全屏播放,我可以將設備旋轉到風景並再次回到肖像......仍然一切都運行平穩。

當我點擊在右下角的對話泡泡來改變音頻或字幕設置這種UIAlertController的顯示在肖像模式(iPhone 7加人像): audio & subtitle settings in portrait

當敲擊在橫向模式下相同的按鈕它看起來像這樣(基本上是相同的,但會出現在縱向,iPhone 7橫向):在景觀 audio & subtitle settings launched from landscape but showing in portrait

做同樣的在iPad上航2看起來是這樣的: audio & subtitle settings in landscape on iPad

現在的實際問題:在橫屏模式下在6/6s/7 PLUS設備上播放電影並點擊對話框時,應用程序崩潰!這是在調試器輸出和堆棧跟蹤顯示:

2017年8月10日12:08:18.683184 + 0200 MyApp的[27739:6396143] [斷言] transitionViewForCurrentTransition未設置! (< _UIFullscreenPresentationController:0x7ffe3e586000>) Stack trace

對我來說,它看起來像一個蘋果的錯誤,因爲我沒有做什麼特別的東西在這裏(至少我是這麼認爲的),也因爲使用加設備時死機僅顯示,這是唯一具有緊湊和常規尺寸組合的產品。

有沒有人知道這裏發生了什麼?

+0

相同我面臨的問題,你找到一個解決方案? – karthikeyan

+0

@karthikeyan查看我的回答 – Kai

回答

0

這一定是一個iOS的10錯誤,因爲我無法與iOS 11.

+1

我只收到iOS 11設備,而不是iOS 10 – karthikeyan

0

我得到同樣的問題再重現這個問題,我用下面的代碼固定它AppDelegate.m

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window 
{ 
    for (UIView *transitionView in window.subviews) { 
     if ([transitionView isKindOfClass:NSClassFromString(@"UITransitionView")]) { 
      for (UIView *subView in transitionView.subviews) { 
       id nextResponder = [subView nextResponder]; 
       if ([nextResponder isKindOfClass:NSClassFromString(@"AVFullScreenViewController")]) { 
        return UIInterfaceOrientationMaskAll; 
       } 
      } 
     } 
    } 
    return (1 << UIInterfaceOrientationLandscapeRight) | (1 << UIInterfaceOrientationLandscapeLeft); 
} 
+0

請正確格式化您的答案。 –