使用 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
}
我有一个 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
}