我正在开发基于AngularJS和Laravel 5的网络广播应用程序,该应用程序读取Icecast流。现在,我正在将流加载到html5音频元素中,它的工作原理非常好。每隔5秒,我调用一个后端方法,它返回当前正在播放的歌曲信息,我可以用新标题,艺术家更新视图......
但是我遇到了一个问题:在歌曲真正开始之前,视图会更新几秒钟(有时长达40秒)。这可能是由于某些浏览器缓冲。
现在,我正试图从icecast元数据中读取歌曲的信息。有没有办法在JS中的流中每次获取元数据?这将是完美的,我不会有任何延迟问题,我不必每5秒调用一次后端。
答案 0 :(得分:0)
Firefox(gecko)确实有针对HTML5元数据的供应商特定JavaScript API。我相信我在其他地方解释过。
我不知道任何可以使用普通HTML5后端的跨浏览器选项。
这会占用大量CPU负载,您可以在javascript中解码流并在用于回放的缓冲区的同一点读取元数据。 Audiocogs有一些开源组件,维基百科也为不支持原生播放的浏览器使用了它的变体。