我是一家广播电台的网页开发人员。自从IOS 11发布以来,我们收到了几次用户投诉,说我们的音频直播流不能在IOS 11设备上播放了。为了将流嵌入到我们的网站中,我们使用HTML5 AudioElement。在iPhone和iOS11上调试javascript时,我们认识到调用音频元素play()方法会导致MediaError of ErrorCode 4 (MEDIA_ERR_SRC_NOT_SUPPORTED)。所有其他设备(Android、Windows和IOS 10及更低版本)播放这些流都没有任何问题。我创建了一个小的codepen示例
<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之一交给源标记。
运行iOS10和更低版本的设备播放这些流没有任何问题,就像当前的android或windows设备一样。但是,运行IOS 11.0.1的设备无法播放该流。我找不到任何关于为什么这不可能的信息。有没有人知道为什么我们的流不再工作了,并能给我们一些建议,我们可以做些什么来让它们再次工作?
发布于 2017-10-03 02:52:59
这个问题是由于苹果WebKit在最新的iOS版本中的变化造成的。对于运行KH Icecast的用户来说,修复程序很快就会出现(希望如此!) https://github.com/karlheyes/icecast-kh/issues/172
发布于 2017-10-06 19:58:29
添加如下所示的简单音频控件
<audio controls>
<source src="https://swr-swr3-live.sslcast.addradio.de/swr/swr3/live/mp3/128/stream.mp3" type="audio/mpeg;codecs="mp3"">
</audio>
…不播放。
而这个是这样的:
<audio controls>
<source src="http://mp3-live.swr3.de/swr3_m.m3u">
</audio>
我能发现的唯一区别是,在MP3上,当M3U播放列表工作时,它会失败。在iOS 10及更低版本以及当前的macOS Safari上,它同时适用于这两个系统。iOS 11上的Chrome也失败了(同样的Webkit引擎?!)
发布于 2018-03-13 00:43:58
当我试图将带有音频控件的本地HTML文件加载到UIWebView中时,我也遇到了同样的问题。然而,我的文件是一个.m4a音频文件。我发现只要删除type
就行了。所以我的HTML是这样的:
<div class="audio"><audio controls><source src="my_local_audio_file.m4a"></audio></div>
使用type=audio/mp4
对我也很有效。所以我猜这是一个不兼容的mime类型,删除该类型将是最好的选择。
希望这能有所帮助。
https://stackoverflow.com/questions/46486307
复制相似问题