Полноэкранная проблема AVPlayer только для iPhone x
Я создал заставку видео с помощью контроллера Av Player View. Он подходит для всех устройств, кроме I Phone X. Я пытался изменить гравитацию видео и все, но это не сработает. Есть идеи по этому поводу? вот пример кода:
guard let videoPath = Bundle.main.path(forResource: "Redtaxi-splash", ofType:"mov") else {
return
}
let videoURL = URL(fileURLWithPath: videoPath)
let player = AVPlayer(url: videoURL)
playerViewController = AVPlayerViewController()
playerViewController?.player = player
playerViewController?.showsPlaybackControls = false
playerViewController?.view.frame = view.frame
playerViewController?.view.backgroundColor = .white
playerViewController?.view.contentMode = .scaleAspectFill
NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying(note:)),
name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)
view.addSubview((playerViewController?.view)!)
playerViewController?.player?.play()
1 ответ
Решение
Я исправил это, задав гравитацию видео для контроллера вида игрока:
playerViewController.videoGravity = .resizeAspectFill
это решит проблему, используя гравитацию видео в качестве заливки аспекта для контроллера представления avplayer. Вот документация для видео гравитации:
Гравитация видео определяет, как видеоконтент масштабируется или растягивается в границах слоя проигрывателя.
Swift 4
playerViewController.videoGravity = AVLayerVideoGravity.resizeAspectFill.rawValue