2017-08-10 26 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

请正确格式化您的答案。 –