From 9268a21eb87d4ba0ebd97a9367f448df422cfd48 Mon Sep 17 00:00:00 2001 From: CodeST <694468528@qq.com> Date: Fri, 28 Nov 2025 14:25:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keyBoard/Class/Guard/VC/KBGuideVC.m | 10 +++++++--- keyBoard/VC/KBPermissionViewController.h | 4 ++++ keyBoard/VC/KBPermissionViewController.m | 15 +++++++++++++-- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/keyBoard/Class/Guard/VC/KBGuideVC.m b/keyBoard/Class/Guard/VC/KBGuideVC.m index fd21f98..224072b 100644 --- a/keyBoard/Class/Guard/VC/KBGuideVC.m +++ b/keyBoard/Class/Guard/VC/KBGuideVC.m @@ -135,9 +135,13 @@ typedef NS_ENUM(NSInteger, KBGuideItemType) { [self kb_preparePermissionOverlayIfNeeded]; BOOL show = needGuide; -// [UIView performWithoutAnimation:^{ - self.permVC.view.hidden = !show; -// }]; + // 同步控制引导页视频的播放/暂停:仅在显示时播放 + self.permVC.view.hidden = !show; + if (show) { + [self.permVC kb_resumeGuideVideoIfNeeded]; + } else { + [self.permVC kb_pauseGuideVideo]; + } // 若权限已满足(引导未显示),从设置返回时尝试让输入框成为第一响应者, // 以便立刻触发键盘挂载并检测是否为自家键盘/是否已开启完全访问 diff --git a/keyBoard/VC/KBPermissionViewController.h b/keyBoard/VC/KBPermissionViewController.h index 90bced0..1eebf33 100644 --- a/keyBoard/VC/KBPermissionViewController.h +++ b/keyBoard/VC/KBPermissionViewController.h @@ -16,6 +16,10 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy, nullable) void (^backHandler)(void); @property (nonatomic, strong) UIButton *backButton; // 左上角返回 +/// 外部(如 KBGuideVC)根据引导页是否显示,控制视频播放/暂停 +- (void)kb_resumeGuideVideoIfNeeded; +- (void)kb_pauseGuideVideo; + @end NS_ASSUME_NONNULL_END diff --git a/keyBoard/VC/KBPermissionViewController.m b/keyBoard/VC/KBPermissionViewController.m index f920e22..95dc657 100644 --- a/keyBoard/VC/KBPermissionViewController.m +++ b/keyBoard/VC/KBPermissionViewController.m @@ -108,8 +108,10 @@ static void *KBPermPlayerPresentationSizeContext = &KBPermPlayerPresentationSize - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; - // 进入页面时自动开始播放 - [self kb_setupPermissionVideoPlayer]; + // 进入页面时自动开始播放;若当前被隐藏,则由外部显式控制 + if (!self.view.hidden) { + [self kb_setupPermissionVideoPlayer]; + } } - (void)viewDidDisappear:(BOOL)animated { @@ -249,6 +251,15 @@ static void *KBPermPlayerPresentationSizeContext = &KBPermPlayerPresentationSize [self.kb_permPlayer play]; } +- (void)kb_resumeGuideVideoIfNeeded { + // 若已初始化,则直接播放;否则按统一逻辑创建并播放 + [self kb_setupPermissionVideoPlayer]; +} + +- (void)kb_pauseGuideVideo { + [self.kb_permPlayer pause]; +} + - (void)kb_playerItemDidReachEnd:(NSNotification *)note { AVPlayerItem *item = (AVPlayerItem *)note.object; if (!item) return;