读取ICY元数据reactJS

时间:2019-08-20 03:11:28

标签: javascript reactjs icecast

嗨,我想知道我将如何使用javascript或reactjs从流媒体站读取数据?

可悲的是,我用谷歌搜索,没有运气,我想知道是否有人知道可以读取的脚本(icecast ICY元数据?)

3 个答案:

答案 0 :(得分:2)

请注意,网络浏览器不支持ICY元数据,因此您必须手动实现很多操作 并仅为元数据消耗整个流。我不建议这样做。

正如您指出的Icecast一样,建议的获取元数据的方法是查询JSON端点:/status-json.xslIt's documented

听起来您是在为特定服务器定制构建,因此这应该是一个好方法。请注意,您必须正在运行最新的Icecast版本(至少2.4.1,但出于安全原因,最好是最新版本)。


如果您想访问无法控制的随机Icecast服务器,它将变得很复杂:https://stackoverflow.com/a/57353140/2648865


如果要播放流 ,然后显示其ICY元数据,请查看miknik的答案。 (它适用于旧版ICY流,不适用于WebM或Ogg封装的Opus,Vorbis等)

答案 1 :(得分:1)

我写了一个脚本来完成这个任务。

它实现了一个服务工作者,并使用Fetch APIReadable Streams API来拦截从您的页面到流服务器的网络请求,向该请求添加必要的标头以从中启动流内元数据您的流服务器,然后在通过页面上的音频元素播放mp3时从响应中提取元数据。

由于对服务人员和Fetch API的限制,我的脚本仅在您的网站通过SSL提供服务且您的流服务器和网站位于同一域时才有效。

您可以在Github上找到代码,并在操作here中找到它的非常基本的演示(打开控制台窗口以查看从服务人员传递的数据)

答案 2 :(得分:0)

相关问题