我正在实现一个使用 webview 播放视频文件的服务。我从 UIWebView 迁移到 WKWebView,并尝试用它播放 Youtube 和 Coub 视频。几乎一切正常,在 iOS 8 中没有崩溃,但是在 WKWebView 发布并从屏幕上移除后,视频声音会继续播放一段时间(在某些情况下大约 45 秒)。
我找不到停止视频声音的方法。我试图用媒体播放器捕捉系统通知,但没有成功。
有什么方法可以停止 WKWebView 中的声音或视频吗?
接下来是 WKWebview 配置:
//javascript for configurate video viewport (not full screen)
NSString *jScript = [NSString stringWithFormat:@"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=%d, height=%d, initial-scale=1, maximum-scale=1'); document.getElementsByTagName('head')[0].appendChild(meta);", (int)VIEW_WIDTH, (int)VIEW_HEIGHT ];
WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
WKUserContentController *wkUController = [[WKUserContentController alloc] init];
[wkUController addUserScript:wkUScript];
WKWebViewConfiguration *config = [WKWebViewConfiguration new];
config.mediaPlaybackAllowsAirPlay = YES;
config.userContentController = wkUController;
_wkWebView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, VIEW_WIDTH, VIEW_HEIGHT) configuration:config];
[_wkWebView setBackgroundColor:RGB(0x0a0a0a)];
[_wkWebView setNavigationDelegate:self];
[self insertSubview:_wkWebView atIndex:0];