WKWebView不播放音频

时间:2019-07-01 10:23:23

标签: ios swift wkwebview wkwebviewconfiguration

我正在设置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在应用程序中调用用户时,预期的结果是需要自动播放音频

3 个答案:

答案 0 :(得分:0)

我认为这不会改变,如果需要播放音频,iOS需要用户单击。无法自动播放音频。

答案 1 :(得分:0)

您的iOS代码正确,只需在音频标签中添加“ autoplay = true” 属性,音频就会开始自动播放。请参见下面的代码。

 <audio autoplay="true">
        <source src="music-box.mp3" type="audio/mpeg" />
 </audio>

答案 2 :(得分:0)

WKWebViewConfiguration *webConfig = [[WKWebViewConfiguration alloc] init];
webConfig.allowsInlineMediaPlayback = YES;
if (@available(iOS 10.0, *)) {
    webConfig.mediaTypesRequiringUserActionForPlayback = NO;
}