【问题标题】:Safari 15 fails to decode audio data that previous versions decoded without problemsSafari 15 无法解码以前版本解码没有问题的音频数据
【发布时间】:2021-10-05 14:42:55
【问题描述】:

我正在使用 AudioContext 为游戏加载 .mp3 文件。它曾经工作得很好,但在 Safari 15 发布后,我收到了来自人们的报告,其中声音无法播放。在他们升级浏览器之前,声音对他们来说很好用。

在我自己的 Safari 15 上它运行良好,但对于某些人来说,调用 audioContext.decodeAudioData 失败,他们只收到 EncodingError: Decoding failed 并且没有额外信息。我尝试使用 .aac 文件而不是 .mp3 文件,但发生了同样的事情。

很难弄清楚这一点,因为我自己无法重现它。有什么想法吗?

【问题讨论】:

  • 我自己也有同样的问题。无法在本地重现,除了我无能为力的新浏览器错误之外,无法找出任何可能的原因。最终捕获失败的 decodeAudioData 调用并退回到 Wasm 支持的解码库(来自 wasm-audio-decoders)。在 Apple 挥舞我的拳头,我必须这样做,但这似乎很有魅力。
  • 注意,我实际上是利用这个机会切换到 Opus 音频,Safari 本身并不支持该音频。 My fork of wasm-audio-decoders 包括我在 Web Worker 中进行解码的修改,这可以防止阻塞主线程(就像 decodeAudioData 在单独的线程中运行一样)。
  • 另外,如果它是一个有用的数据点,我的 Sentry 日志表明这个问题影响了大约 20% 的 Safari 15 用户。
  • 酷!而且,同样的:在两台 M1 Mac 和两台 x86 Mac 上进行了测试,当然它在它们上完美运行。
  • 我用 Safari 15 在 4 台机器上进行了测试。两台机器有解码问题,两台没有。这两个正在运行 macOS 10.15.7 (Catalina)。没有运行 macOS 11+ (BigSur) 的两个。当然,对于 N=4,这是非常不确定的,但这可能是一个提示。还有其他人看到 macOS 版本与他们机器上的问题之间存在关联吗?

标签: javascript safari audiocontext


【解决方案1】:

在 macOS Catalina 10.15 中存在影响 Safari 15 的沙盒回归。它阻止使用网络音频解码音频

【讨论】:

  • 好的,可能最简单的方法就是等这个出来,当他们计划发布修复这个问题的更新时有什么想法吗?
  • 他们解决了吗?他们如何不快速跟踪修补程序超出了我的理解。
  • 我在 BigSur 下的 Safari 15.2 (16612.3.6.1.8, 16612) 上没有这个问题,但我在 STP 137 (Safari 15.4, WebKit 16613.1.11.8) 和 BigSur 上也有这个问题。
猜你喜欢
  • 1970-01-01
  • 2017-06-09
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 2017-05-16
  • 1970-01-01
  • 2019-03-28
相关资源
最近更新 更多