IOS 14 AVPlayer plays on simulator but doesn't on a real device

463 views Asked by At

I have splash screen as a short mov video for my application and I use AVPlayer (code below) for that. It stopped working with the IOS 14 physical device, while on the simulator it works fine. Could you help with that?

import UIKit
import AVKit
import AVFoundation

class PlayerVC: UIViewController, AVAudioPlayerDelegate {
  
  lazy var player: AVPlayer  = {
    let fileName = "test"
    let path = Bundle.main.path(forResource: fileName, ofType: "mov")!
    let videoURL = URL(fileURLWithPath: path)
    let player = AVPlayer(url: videoURL)
    return player
  }()
  
  override func viewDidLoad() {
    super.viewDidLoad()
    self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(viewTapped)))
  }
  
  override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    let playerLayer = AVPlayerLayer(player: player)
    playerLayer.shouldRasterize = true
    playerLayer.frame = self.view.bounds
    
    self.view.layer.addSublayer(playerLayer)
    player.play()
    NotificationCenter.default.addObserver(self, selector: #selector(self.playerDidFinishPlaying(sender:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)
  }
  
  @objc func playerDidFinishPlaying(sender: NSNotification) {
    loadRootVC()
  }

  private func loadRootVC() {
    dismiss(animated: false, completion: nil)
    self.onVideoFinished();
  }
  
  @objc func viewTapped() {
    loadRootVC()
  }
  
  deinit {
    NotificationCenter.default.removeObserver(self)
  }
}
0

There are 0 answers