0

我仅在 Safari 中遇到某些 MP3 文件的问题。

这是一个代码笔: https ://codepen.io/parliament718/pen/ExjwWEp

在 chrome 中,两个按钮都可以播放两个文件。在 Safari 中,只有第一个按钮有效。

为什么是这样?当 safari 没有看到“.mp3”后缀时,它会窒息还是其他什么?

  • 两个请求都返回“audio/mp3”Content-Type 标头。
  • 这两个文件都可以下载为 mp3 并在任何音频播放器中播放
  • 两个文件都可以通过safari地址栏直接播放

但只有其中一个文件使用 WebkitAudioContext 以编程方式播放。

失败代码:

window.webkitAudioContext.decodeAudioData(request.response, ...)
4

1 回答 1

1

您的 MP3 文件无效。文件开头有多部分表单垃圾。如果你用十六进制编辑器打开它,你会看到它:

十六进制编辑器视图

播放此文件的其他任何地方都对您很好。:-)

此外,audio/mpeg用于您的Content-Type标题。在您的情况下并不重要,因为您使用音频上下文来解码数据......它不知道原始Content-Type标题是什么。我在这里为其他人提到它,因为这是一个常见的错误。

于 2020-03-06T16:27:14.873 回答