【问题标题】:WKWebView not playing audioWKWebView 不播放音频
【发布时间】:2019-11-12 00:14:35
【问题描述】:

我正在设置一个 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 在应用程序中调用用户时需要自动播放音频

【问题讨论】:

  • 你有没有找到任何解决方案,因为我也面临这个问题?

标签: ios swift wkwebview wkwebviewconfiguration


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 你能用上面的代码自动播放音频文件吗?
    • 实际上,这将在页面加载后立即播放音频,音频在由条件控制的特定点播放
    • 我按照你的问题回答了。您最初的问题是您想在网络视图中自动播放音频。请编辑您的问题,您希望在哪个时间点或条件下播放该音频文件。
    • 你好@kuldeep 我已经编辑了这个问题,现在看看,如果你能帮我解决这个问题就可以了
    • @HarshSrivastava,您能否详细说明一下条件。是否要根据条件通过原生代码播放音频?
    【解决方案3】:
    WKWebViewConfiguration *webConfig = [[WKWebViewConfiguration alloc] init];
    webConfig.allowsInlineMediaPlayback = YES;
    if (@available(iOS 10.0, *)) {
        webConfig.mediaTypesRequiringUserActionForPlayback = NO;
    }
    

    【讨论】:

    • 欢迎来到 Stack Overflow。虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。 How to Answer。亲切的问候。
    猜你喜欢
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多