【问题标题】:HTML5 Audio Throwing Error on iOS Safari only: "Unhandled Promise Rejection: NotSupportedError: The operation is not supported."仅 iOS Safari 上的 HTML5 音频抛出​​错误:\“未处理的承诺拒绝:NotSupportedError:不支持该操作。\”
【发布时间】:2022-08-15 23:00:34
【问题描述】:

我正在尝试在单击按钮时播放/暂停 mp3 HTML5 音频(具有 id \"playaudio\"),它在除 iOS Safari 之外的所有设备上都可以正常工作,它在控制台中的 Safari 上显示以下错误时点击播放按钮:

未处理的 Promise Rejection: NotSupportedError: 操作不是 支持的。\”

谁能告诉我为什么我只在 Safari 上遇到这个问题,我该如何解决?

let song = document.getElementById(\"testingsong\");

$(\'#playaudio\').click(function() {
  var clicks = $(this).data(\'clicks\');
  if (clicks) {
    $(\".play\").css(\"display\", \"none\");
    $(\".pause\").css(\"display\", \"block\");
    song.play();
  } else {
    $(\".play\").css(\"display\", \"block\");
    $(\".pause\").css(\"display\", \"none\");
    song.pause();
  }
  
  $(this).data(\"clicks\", !clicks);
});
<audio id=\"testingsong\" src=\"/audio.mp3\"></audio>
  • 您是否研究过错误并尝试了任何修复?一些答案指出问题是由于使用了a relative path in Safari,其他人说这可能是文件格式(尽管您似乎使用的是 MP3,我认为它得到了很好的支持,除非您使用的是奇怪的采样率或编码)
  • 我已经搜索了很多有关该错误的信息,但没有找到任何说明确切错误的资源。是的,我尝试过对 mp3 也使用绝对路径,但仍然显示相同的错误
  • 也许服务器发送了错误的content-type - 检查 mp3 请求的响应标头 - 我很好奇:内容类型是什么
  • 响应头中的内容类型是:Content-Type: audio/mp3,在我的情况下这是正确的

标签: javascript jquery ios safari html5-audio


【解决方案1】:

这个问题也发生在我身上,但我注意到它只发生在 iOS 16 Beta 上;我试图用不同版本的 iOS 重现该问题,但没有发生。

您是否仅在 iOS 16 或更多版本上体验过它?

【讨论】:

    猜你喜欢
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多