繁体   English   中英

HTML 5 AudioElement不会在IOS 11设备上的Safari中播放mp3 Livestream

[英]HTML 5 AudioElement won't play mp3 Livestreams in safari on IOS 11 devices

我是一家无线电广播公司的网络开发人员。 自IOS 11发布以来,我们收到了一些用户投诉,称我们的音频直播流无法在IOS 11设备上播放。 要在我们的网站中嵌入流,我们使用HTML5 AudioElement。 在iPhone IOS 11上调试javascript时,我们发现调用音频元素play()方法会导致ErrorError 4的MediaError(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。

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

这个问题取决于Apple WebKit在最新iOS版本中的变化。 对于运行KH Icecast的用户,很快就会有一个修复程序(希望如此!) https://github.com/karlheyes/icecast-kh/issues/172

添加这样的简单音频控件

<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播放列表工作时它会失败。 在iOS 10及更低版本以及当前的macOS Safari上,它都兼容。 iOS 11上的Chrome也失败了(同样的Webkit引擎?!)

尝试将带有音频控件的本地HTML文件加载到UIWebView时,我看到了同样的问题。 但是,我的文件是.m4a音频文件。 我发现只是移除type就可以了。 所以我的HTML看起来像这样:

<div class="audio"><audio controls><source src="my_local_audio_file.m4a"></audio></div>

使用type=audio/mp4也适合我。 所以我猜它是一个不兼容的mime类型,只是删除类型将是最好的选择。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM