我正在使用音频元素从 icecast 服务器流式传输 ogg 源。音频元素是否提取冰冷的元数据,有没有办法通过 javascript 访问它?
基本上,我想显示我正在播放的广播电台的“当前播放”信息。我有哪些选择?
谢谢!
我正在使用音频元素从 icecast 服务器流式传输 ogg 源。音频元素是否提取冰冷的元数据,有没有办法通过 javascript 访问它?
基本上,我想显示我正在播放的广播电台的“当前播放”信息。我有哪些选择?
谢谢!
不,您的 HTML5 元素只知道流数据,甚至没有发出适当的请求来获取元数据。
请参阅这些帖子:
现在,这无论如何都不是不可能的。你只需要在服务器端做。(特别是第二个链接。)
我还应该指出,在成熟的 SHOUTcast 服务器上(尚未使用 Icecast 进行测试,但值得一试)生成“7.html”,其中包含有关听众数量、最大听众、峰值听众、立体声/单声道、比特率和当前轨道名称为逗号分隔值。像这样:
2,1,33,625,2,128,J Mascis - Not Enough
如果你可以 fetch http://yourstreamingserver:port/7.html
,那么你可以很容易地得到这些数据。
如果是 Ogg 容器流(Vorbis 和 Opus 都是如此),至少 Firefox 支持 javascript 访问元数据。这目前只是“供应商特定”的 Javascript API:audio.mozGetMetadata();
另一方面,如果您使用 Icecast 2.4.1,您可以通过 JSON API 独立访问元数据。其他评论中指出的缺乏同步适用。不过,它通常“足够接近”。