使用 AVPlayerViewController 时,当用户按下主页按钮时,视频会在后台播放,但当返回到应用程序时,视频会自行关闭

While using AVPlayerViewController, video plays in the background when user hits home button, but when returning to app the video closes by itself

我有一个 AVPlayerViewController,当用户单击主页按钮并在后台运行该应用程序时,它可以正常运行并继续播放。

我的问题是,当我通过点击视频右上角的全屏按钮 return 进入应用程序时,视频自行关闭,用户必须再次点击视频,然后找到他们所在的位置。显然这是一个糟糕的用户体验,我想解决这个问题。关于如何解决此问题的任何想法?

这是正在发生的事情的示例视频。 example

这是我们的视频播放器 class。

class VideoPlayer: AVPlayerViewController {
    
    init(url: URL) {
        super.init(nibName: nil, bundle: nil)
        player = AVPlayer(url: url)
        let audio = AVAudioSession()
        do {
            try audio.setCategory(.playback, mode: .moviePlayback)
        } catch {
            
        }
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
}

以下是我们的呈现方式。

        imageViewButton.addAction(UIAction() { _ in
            self.vc?.present(VideoPlayer(url: post.movie!), animated: true)
        }, for: .touchUpInside)

在您的视频播放器中class您需要添加

delegate = self

然后

func playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart(_ playerViewController: AVPlayerViewController) -> Bool {
    return false
}