Полноэкранная проблема 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
Другие вопросы по тегам