1

我正在设置一个 WKWebView,但是这里的 web 代码包含一个在 WKWebView 中不起作用的音频代码。我使用的设备是 iOS 版本 12.3.1 的 iPad Mini

这是后端代码:-

<audio id="alertSound" preload="auto">
  <source src="sound/music-box.mp3" type="audio/mpeg" />
  <source src="sound/music-box.wav" type="audio/x-wav" />
</audio>

这是我在 iOS 端的实现

    func initWebView() {

    let preference = WKPreferences()
    preference.javaScriptEnabled = true

    let configuration = WKWebViewConfiguration()
    configuration.preferences = preference
    configuration.allowsInlineMediaPlayback = true
    configuration.allowsAirPlayForMediaPlayback = true
    configuration.allowsPictureInPictureMediaPlayback = true
    configuration.mediaTypesRequiringUserActionForPlayback = []


    self.wkWebView = WKWebView.init(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height), configuration: configuration)
    self.wkWebView.contentMode = .scaleAspectFit
    self.wkWebView.allowsLinkPreview = true
    self.wkWebView.allowsBackForwardNavigationGestures = false
    self.webContentView.addSubview(self.wkWebView)
}

预期结果是使用 WKWebView 在应用程序中调用用户时需要自动播放音频

4

3 回答 3

0

你的 iOS 代码是对的,只需要在音频标签中添加“autoplay=true”属性,音频就会开始自动播放。请看下面的代码。

 <audio autoplay="true">
        <source src="music-box.mp3" type="audio/mpeg" />
 </audio>
于 2019-07-01T11:59:31.310 回答
0

我认为它没有改变,如果需要播放音频,iOS 需要用户点击。无法自动播放音频。

于 2019-07-01T10:35:08.163 回答
0
WKWebViewConfiguration *webConfig = [[WKWebViewConfiguration alloc] init];
webConfig.allowsInlineMediaPlayback = YES;
if (@available(iOS 10.0, *)) {
    webConfig.mediaTypesRequiringUserActionForPlayback = NO;
}
于 2020-11-12T05:47:06.243 回答