AVPlayer воспроизводит видео сбоку в Swift

Я пытаюсь записать видео, а затем воспроизвести его, проблема в том, что при воспроизведении видео оно воспроизводится боком. Я отключил ландшафтный режим, поэтому понятия не имею, в чем может быть проблема. Вот реализация:

class VideoPlayback: UIViewController {

    let avPlayer = AVPlayer()
    var avPlayerLayer: AVPlayerLayer!

    var videoURL: URL!
    //connect this to your uiview in storyboard
    @IBOutlet weak var videoView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

        avPlayerLayer = AVPlayerLayer(player: avPlayer)
        avPlayerLayer.frame = view.frame
        avPlayerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
        videoView.layer.insertSublayer(avPlayerLayer, at: 0)
        view.layoutIfNeeded()
        
        let playerItem = AVPlayerItem(url: videoURL as URL)
        avPlayer.replaceCurrentItem(with: playerItem)
    
        avPlayer.play()
    }
}

Кто-нибудь знает, как это исправить?


person Noah Iarrobino    schedule 31.08.2020    source источник
comment
Пожалуйста, посмотрите мой ответ stackoverflow.com/questions/46243096/   -  person iUrii    schedule 01.09.2020


Ответы (1)


let angle = .pi/2    //90 degrees -- or desired rotation
avPlayerLayer.setAffineTransform(CGAffineTransform(rotationAngle: angle)

Это должно работать для одного видео, но если вы собираетесь воспроизводить разные видео, это может быть ненадежно.

person nick    schedule 01.09.2020