如何检测用户按下AVPlayerViewController的展开图标?
我想知道电影播放时是否进入全屏模式.
我想知道电影播放时是否进入全屏模式.
解决方法
也可以观察playerViewController.contentOverlayView的界限,并将其与[UIScreen mainScreen] .bounds进行比较,例如:
self.playerViewController = [AVPlayerViewController new]; // do this after adding player VC as a child VC or in completion block of -presentViewController:animated:completion: [self.playerViewController.contentOverlayView addObserver:self forKeyPath:@"bounds" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL]; ... - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context { if (object == self.playerViewController.contentOverlayView) { if ([keyPath isEqualToString:@"bounds"]) { CGRect oldBounds = [change[NSKeyValueChangeOldKey] CGRectValue],newBounds = [change[NSKeyValueChangeNewKey] CGRectValue]; BOOL wasFullscreen = CGRectEqualToRect(oldBounds,[UIScreen mainScreen].bounds),isFullscreen = CGRectEqualToRect(newBounds,[UIScreen mainScreen].bounds); if (isFullscreen && !wasFullscreen) { if (CGRectEqualToRect(oldBounds,CGRectMake(0,newBounds.size.height,newBounds.size.width))) { NSLog(@"rotated fullscreen"); } else { NSLog(@"entered fullscreen"); } } else if (!isFullscreen && wasFullscreen) { NSLog(@"exited fullscreen"); } } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。