在使用适用于 iOS 的 YouTube 帮助程序库时,我希望能够在用户退出播放器停止播放时检测到状态变化。我试过使用 kYTPlayerStateEnded
,但只有在视频结束后才会触发。
查看YTPlayerView.m
文件后,我似乎找不到可以实现此目的的状态。是否有另一种方法可以检测您何时按下“完成”并退出播放器视图?
在使用适用于 iOS 的 YouTube 帮助程序库时,我希望能够在用户退出播放器停止播放时检测到状态变化。我试过使用 kYTPlayerStateEnded
,但只有在视频结束后才会触发。
查看YTPlayerView.m
文件后,我似乎找不到可以实现此目的的状态。是否有另一种方法可以检测您何时按下“完成”并退出播放器视图?
“退出播放器”是什么意思?您的意思是当用户暂停此视频或用户退出全屏播放器时?
要离开全屏播放器,您可以使用UIWindowDidBecomeVisibleNotification
通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoExitFullScreen:) name:UIWindowDidBecomeVisibleNotification object:self.view.window];
YTPlayerState
kYTPlayerStatePaused
为了检测暂停,您可以在状态更改回调中监听:
- (void)playerView:(YTPlayerView *)playerView didChangeToState:(YTPlayerState)state;
如果您YTPlayerView
是 a 的子视图UIViewController
,则可以viewWillDisappear:
在视图控制器上使用来清理播放器。
要解决您所描述的问题,您可以使用带有UIWindow.didBecomeHiddenNotification
(Swift)的通知。这应该放在您正在播放视频的视图控制器中。
NotificationCenter.default.addObserver(self, selector: #selector(playerExited), name: UIWindow.didBecomeHiddenNotification, object: nil)