【发布时间】:2018-01-20 02:41:32
【问题描述】:
我正在使用 WKWebView 开发一个内置 Swift 的 iOS 应用程序,其中包含两个 webViews。其中一个网络有一个默认声音,每次加载 webView 时都会发出声音(网络不是我的)。所以我需要停止或不允许 webView 重现任何声音。有什么方法可以得到这个吗?我尝试了一些代码,但它不起作用。我正在使用 xCode 9 和 Swift 4。
这是我尝试过的代码(但它不起作用):
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
}
catch let error as NSError {
print(error)
}
do {
try AVAudioSession.sharedInstance().setActive(false)
}
catch let error as NSError {
print(error)
}
这是我的代码:
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "theWeb")
let request = URLRequest(url: url!)
webView.navigationDelegate = self
webView.load(request)
}
}
感谢您的回复,很抱歉我的问题,我是编程新手。
【问题讨论】:
-
欢迎您,问得好。你知道页面如何播放声音吗?它是否有 JavaScript onLoad 处理程序或其他东西?声音是媒体文件还是 HTML5 WebAudio 或其他什么?您可能必须重新配置 WKWebView 或注入一些 JavaScript,但这取决于页面发出声音的方式。
-
感谢您的回复@RobNapier 这是网络:danfg95glucose.azurewebsites.net 如果您打开网络,则必须按声音按钮(右上角),这没关系,但如果大数字高于 160 或低于 70 它星号听起来像一个警报。这是我想避免的声音,但我不知道它是媒体文件还是 HTML5 WebAudio。谢谢您的答复。我最近才开始编程,有点迷茫。
-
@RobNapier 我正在寻找一种方法来静音/取消静音来自通过 WKWebView 访问的任何随机网站的所有声音。因此,我不知道页面如何播放声音。我不熟悉Javascript。是否有任何脚本可以处理所有可以静音/取消静音最常见情况的情况?例如 youtube/vimeo/soundcloud 很常见,并且可能都播放不同的声音,但是以非常规的播放声音方式建立自己的网站的人并不常见。脚本将处理前者,但不处理后者。