mll*_*llm 7 objective-c ios avplayer avplayeritem avplayerviewcontroller
我有一个AVPlayerViewController我用一个AVPlayer和一些AVPlayerItem(iOS 10,Xcode 8,Objective C)初始化的。将AVPlayerViewController呈现“内联”的一些子视图里面,一切都与本机播放控制完美的作品。
当我按下本机全屏按钮时,它也可以正常工作并切换到全屏模式(左上角有“完成”按钮)。
我的问题是当我按下完成按钮从全屏返回时,播放器出于某种原因停止播放,自行重置,如果我检查.currentItem,我看到它是nil.
这里发生了什么事?为什么不能在从/到全屏切换之间AVPlayerViewController保持它AVPlayerItem?
bau*_*sic 10
由于看起来当前的行为AVPlayerViewController是退出全屏时暂停,我们可以play()通过实现委托来在退出时调用:
class VideoView {
private var playerViewController: AVPlayerViewController?
func something() {
playerViewController = AVPlayerViewController()
// Other setups
playerViewController?.delegate = self
}
}
extension VideoView: AVPlayerViewControllerDelegate {
func playerViewController(_ playerViewController: AVPlayerViewController, willEndFullScreenPresentationWithAnimationCoordinator coordinator: UIViewControllerTransitionCoordinator) {
// The system pauses when returning from full screen, we need to 'resume' manually.
coordinator.animate(alongsideTransition: nil) { transitionContext in
self.playerViewController?.player.play()
}
}
}
Run Code Online (Sandbox Code Playgroud)