我一直很喜欢SoundManager2作为our MP3 streaming player的前端音乐播放器(带有python后端),但是当流中已注入id3帧时,播放器界面将启动togglePausing(或类似结果的东西)。

我想使用ID3帧(或其他方法)在流中标记点,以便我可以显示有关每个特定(当前正在播放)的片段的详细信息。

流在Chrome mp3播放器中完美播放。

因此,我正在寻找有关如何重新配置​​SM2以处理中游id3标签的见识。我了解HTML5不支持id3,并且已经看到一些JavaScript库可以检索id3v1和id3v2标签,但尚未找到可以与流一起使用的JavaScript库。

甚至有可能在流中包含和检索id3标签,还是我们在这里树错了树?

最佳答案

根据SM2开发人员的说法(谢谢你,斯科特):

HTML5音频在播放选项方面有点“笨拙”,因为它是一劳永逸的-您实际上无法访问任何元数据事件或原始音频流等。HTML5中存在一个元数据事件,但我认为它在初始加载/请求时不会触发多次,也不包含ID3信息。

有较新的Web Audio API可用于超低延迟播放和位级流访问,但是它有很多错误和不一致的实现(尽管越来越好),并且在任何版本的IE中都不支持。 (也许它将在IE 12,TBD中。)

尽管这是不希望的,但我可能考虑每隔一段时间轮询一次服务器以获取当前的流元数据。如果是实时流,则可以让服务器返回已知的当前艺术家/标题。如果是静态的,则可以让客户端发送当前时间偏移,并根据该时间确定哪首歌曲等。

Flash 8/9确实提供了对ID3解析的一些支持,但它通常不可靠,并具有其他限制-特别是Flash根本无法很好地“流式传输”。

关于javascript - 在流中传递ID3信息并在前端进行解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27072761/

10-11 17:26