javascript - HTML5 音频元素无法在 IOS 11 设备上的 safari 中播放 mp3 Livestreams

标签 javascript html mobile-safari html5-audio ios11

我是一家 radio 广播公司的网络开发人员。自从 IOS 11 发布以来,我们收到了多位用户的投诉,称我们的音频直播流无法再在 IOS 11 设备上播放。为了在我们的网站中嵌入流,我们使用 HTML5 AudioElement。在装有 IOS 11 的 iPhone 上调试 javascript 时,我们发现调用音频元素 play() 方法会导致 MediaError 错误代码 4 (MEDIA_ERR_SRC_NOT_SUPPORTED)。所有其他设备(Android、Windows 和 IOS 10 及以下版本)都可以毫无问题地播放流。 我创建了一个小代码笔示例

    <audio controls>
      <source src="http://hr-hrinfo-
      live.cast.addradio.de/hr/hrinfo/live/mp3/128/stream.mp3" 
      type="audio/mpeg;codecs="mp3"">
      Your browser does not support the audio element.
    </audio>

https://codepen.io/ampersand83/pen/pWwgKm其中我只是通过 AudioTag 创建一个 AudioElement 并将源标签交给我们的流 URL 之一。

运行 IOS 10 及以下版本的设备以及当前的 android 或 windows 设备都可以毫无问题地播放流。但是,运行 IOS 11.0.1 的设备无法播放该流。我找不到任何关于为什么这不再可能的信息。有没有人知道为什么我们的流不再工作并且可以给我们建议我们可以做些什么来让它们再次工作?

最佳答案

此问题是由于 Apple WebKit 在最新的 iOS 版本中发生了变化。对于运行 KH Icecast 的用户,预计很快就会有修复(希望如此!)https://github.com/karlheyes/icecast-kh/issues/172

关于javascript - HTML5 音频元素无法在 IOS 11 设备上的 safari 中播放 mp3 Livestreams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46486307/

相关文章:

javascript - JS parseInt() 问题

JavaScript 数学 — 得到错误答案 (128 - 64 = -64)?

javascript - .init() 上的 LungoJS 错误

html - iphone 移动 safari 中的同一页面链接

javascript - 反转空终止字符串的代码

javascript - 循环 html 表并检查是否选择了 radio

jquery - 使用带有 ajax Rest 调用的 Spring CSRF 和带有 Thymeleaf 的 HTML 页面

javascript - 在表单输入字段中创建默认值

jQuery 仅在 iOS 4.2.1 上被忽略

mobile-safari - 内容安全策略在台式机上按预期工作,但在移动设备上不起作用