首页 > 解决方案 > 使用 AVPlayerViewController 时,当用户点击主页按钮时,视频会在后台播放,但当返回应用程序时,视频会自行关闭

问题描述

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

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

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

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

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)

标签: iosswiftavplayer

解决方案


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

delegate = self

接着

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

推荐阅读