如何检测用户何时在 iOS 退出 YouTube 播放器视图?

How to detect when a user exits the YouTube Player view on iOS?

在 iOS 使用 YouTube 帮助程序库时,我希望能够检测到用户退出播放器以停止播放时的状态变化。我试过使用 kYTPlayerStateEnded 但这只会在视频结束后触发。

在查看了YTPlayerView.m文件后,我似乎无法找到可以实现这一点的状态。是否有另一种检测您何时按下 'Done' 并退出播放器视图的方法?

你是什么意思"exits the player?"你的意思是当用户暂停这个视频或者用户退出全屏播放器时?

要让播放器全屏显示,您可以使用UIWindowDidBecomeVisibleNotification通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoExitFullScreen:) name:UIWindowDidBecomeVisibleNotification object:self.view.window];

为了检测暂停,您可以在状态更改回调中监听 YTPlayerState kYTPlayerStatePaused

- (void)playerView:(YTPlayerView *)playerView didChangeToState:(YTPlayerState)state;

如果您的 YTPlayerViewUIViewController 的子视图,您可以在视图控制器上使用 viewWillDisappear: 来清理播放器。

要解决您所描述的问题,您可以使用带有 UIWindow.didBecomeHiddenNotification (Swift) 的通知。这应该放在您正在播放视频的视图控制器中。

NotificationCenter.default.addObserver(self, selector: #selector(playerExited), name: UIWindow.didBecomeHiddenNotification, object: nil)