gpt4 book ai didi

iphone - 检查 YouTube 视频 (MPMoviePlayer) 是否结束

转载 作者:行者123 更新时间:2023-12-03 05:28:24 25 4
gpt4 key购买 nike

我有一个带有加载 YouTube 视频的 WebView 的 View 。我正在使用以下方法在加载 Web View 时自动启动 YouTube 视频。

Web View 打开 iPhone 的 native 电影播放器​​。有什么方法可以检查视频是否已经结束或用户是否按下了电影播放器​​的“确定”按钮并因此关闭了播放器?

这些是我用于自动启动 Web View 的方法:

- (UIButton *)findButtonInView:(UIView *)view {
UIButton *button = nil;

if([view isMemberOfClass:[UIButton class]]) {
return (UIButton *)view;
}

if(view.subviews && [view.subviews count] > 0) {
for(UIView *subview in view.subviews) {
button = [self findButtonInView:subview];
if(button) return button;
}
}

return button;
}

- (void)webViewDidFinishLoad:(UIWebView *)_webView {
UIButton *b = [self findButtonInView:_webView];
[b sendActionsForControlEvents:UIControlEventTouchUpInside];
}

最佳答案

Apple 不会为此推送 [记录] 通知,因此您必须有点棘手。

我这样做的方法是检查应用程序的 keyWindow。我从 here 得到这个想法.

在您的 .h 文件中,跟踪您的计时器和所需的 keyWindow:

NSTimer *windowTimer;
UIWindow *keyWindow;

在您的 .m 文件中,您需要以下内容:
- (void)viewDidLoad {
[super viewDidUnload];
keyWindow = [[UIApplication sharedApplication] keyWindow];
}

然后编辑您的委托(delegate)方法并添加一个新方法:
- (void)webViewDidFinishLoad:(UIWebView *)_webView {
UIButton *b = [self findButtonInView:_webView];
[b sendActionsForControlEvents:UIControlEventTouchUpInside];

// start checking the current keyWindow
windowTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(checkWindowStatus) userInfo:nil repeats:YES];
}

- (void) checkWindowStatus {
// if the key window is back to our application
if (keyWindow == [[UIApplication sharedApplication] keyWindow]) {
[windowTimer invalidate];
windowTimer = nil;

... window has dismissed, do your thing ...
}
}

关于iphone - 检查 YouTube 视频 (MPMoviePlayer) 是否结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5920563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com