ios - 使用 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)
解决方案
在您的视频播放器类中,您需要添加
delegate = self
接着
func playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart(_ playerViewController: AVPlayerViewController) -> Bool {
return false
}
推荐阅读
- python - 如何使用python将df更新为现有的excel文件
- google-apps-script - Google App Script:错误处理和停止脚本执行
- javascript - 谷歌浏览器在警报被解除之前执行 HTMLElement.focus
- amazon-web-services - 可以向 aws s3 presign url 发送 PUT 请求吗?
- c# - 带有表达式的属性中使用的 Nullable DateTime 返回意外的默认值
- c# - 如何构建我的游戏并显示错误消息“编辑器正在导入资产或编译脚本时无法构建播放器”
- android - Android-CameraX:在多个前置摄像头之间切换
- android - 如何通知适配器特定视图更改而不是整个 ViewHolder 更改?
- r - 查找字符串序列在其他向量中的位置
- perl - 打印输出的智能格式化