WKWebView 在后台应用程序时停止音频

Posted

技术标签:

【中文标题】WKWebView 在后台应用程序时停止音频【英文标题】:WKWebView stop audio when backgrounding app 【发布时间】:2017-12-03 07:32:41 【问题描述】:

我有一个正在播放 html5 视频的 WKWebView。当我单击主页按钮并且应用程序进入后台时,我仍然可以听到音频播放。如何暂停 HTML 5 视频以停止播放背景音频。当应用程序进入后台时,我尝试只加载一个空白页面,

let url = URL(string: "about:blank")
let request = URLRequest(url:url!)
self.webView.load(request) 

但我希望能够在用户从后台返回的同时开始播放视频,因此这不是一个可行的解决方案,因为它只是在我打开应用程序备份时加载空白页面。

【问题讨论】:

尝试在 WKWebView 进入后台时向其注入 javascript 代码。 @the4kman 谢谢!为我工作。在下面发布我的答案 【参考方案1】:

当应用进入后台时,我可以通过注入 JavaScript 来实现这一点,这会暂停正在播放的任何视频元素。

NotificationCenter.default.addObserver(self, selector: #selector(enteredBackground(notification:)), name: UIApplication.didEnterBackgroundNotification, object: nil)

@objc func enteredBackground(notification: Notification) 
    let script = "var vids = document.getElementsByTagName('video'); for( var i = 0; i < vids.length; i++ )vids.item(i).pause()"
    self.webView.evaluateJavaScript(script, completionHandler:nil)

【讨论】:

在 WKWebView 中开始播放视频后,您能找到任何检测解决方案吗?如果你能帮我看看这个***.com/questions/55377677/…

以上是关于WKWebView 在后台应用程序时停止音频的主要内容,如果未能解决你的问题,请参考以下文章

iOS WKWebView JS在后台应用程序时不更新属性修改

iPhone 停止在后台播放音频

iOS 8 在 10 分钟后停止在后台流式传输音频

在后台停止音频

iOS WKWebView 退出后停止播放音频/视频

Phonegap / Cordova 在后台 IOS 一段时间后停止音频