我是一家广播公司的网络开发人员。自 IOS 11 发布以来,我们收到了一些用户投诉,称我们的音频直播流无法再在 IOS 11 设备上播放。为了在我们的网站中嵌入流,我们使用 HTML5 AudioElement。在装有 IOS 11 的 iPhone 上调试 javascript 时,我们认识到调用音频元素 play() 方法会导致错误代码 4 (MEDIA_ERR_SRC_NOT_SUPPORTED) 的 MediaError。所有其他设备(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>
Run Code Online (Sandbox Code Playgroud)
https://codepen.io/ampersand83/pen/pWwgKm在其中我只是通过 AudioTag 创建一个 AudioElement 并将源标签传递给我们的流 URL 之一。
运行 IOS 10 及以下版本的设备以及当前的 android 或 windows 设备都可以毫无问题地播放流。但是,运行 IOS 11.0.1 的设备无法播放流。我找不到任何关于为什么这不再可能的信息。有没有人知道为什么我们的流将不再工作,并且可以就我们可以做些什么来使它们再次工作提供建议?