画面の向きをDeployment InfoにてPortraitのみに設定しているアプリの画面に、AVPlayerViewControllerを配置し動作再生を行なっています。
端末を横向きにしながら、AVPlayerViewControllerの操作パネルで全画面再生し、その後全画面をやめた際に、画面が崩れます。
(端末は縦向きだが、ビュー内のデザインは横向きに配置されている感じで、画面下半分が真っ黒になります。)
縦の状態で全画面再生にした後に、端末を横向きにし全画面再生を解除した時は、正常にレイアウトされています。
端末を横向きにしながら全画面再生した後に、全画面を解除してもレイアウトが崩れない様にできないでしょうか
上記の現象は、シミュレータでは発生せず、実機でのみ発生します。
実機はiPhone8(OS:11.3.1)です。
レイアウトが崩れ状態のスクリーンショットです。
(navigationを使用し、画面遷移する様になっているViewControllerの上にAVPlayerViewControllerを配置しております)
swift
1 // 生成 2 let player = AVPlayer(playerItem: playerItem) 3 playerViewController = AVPlayerViewController() 4 playerViewController.player = player 5 6 // 設定 7 playerViewController.view.frame = CGRect(x: 18, y: 165, width: 338, height: 190) 8 playerViewController.showsPlaybackControls = true // 操作パネルを非表示にする場合はfalse 9 playerViewController.videoGravity = AVLayerVideoGravity.resizeAspect.rawValue // 矩形にフィット 10 11 // 通知登録 12 NotificationCenter.default.addObserver(self, selector: #selector(didPlayerItemReachEnd), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil) 13 14 // 表示 15 view.addSubview(playerViewController.view)
AVPlayerViewControllerはViewControllerのviewDidLoadで、上記コードで生成しております。
回答2件
あなたの回答
tips
プレビュー