通过http响应的MP3元数据

时间:2014-04-01 06:46:20

标签: php http mp3 audio-streaming winamp

这听起来像是一个奇怪的请求。

我有一个PHP脚本从SoundCloud中提取mp3流并使用正确的标题重复流以允许WinAmp播放该文件。但它只显示我运行脚本的本地URL。在有人要求之前,我在回复它之前将ID3v1注入到文件中。 有没有办法为WinAmp提供来自php的元数据?

1 个答案:

答案 0 :(得分:0)

为了澄清一下,您是否有效地从SoundCloud代理MP3文件,并且您想要将元数据嵌入其中?

Winamp将在HTTP服务的MP3文件中提取ID3标签。但是,如果您使用的是ID3v1,那么这些标记在文件的最后才会存在。如果要在不必下载整个文件的情况下识别文件,则必须使用通常位于文件开头的ID3v2。 (我实际上建议同时使用ID3v1和ID3v2以获得更广泛的播放器兼容性,但几乎所有内容都支持ID3v2,因此它是您的选择。)

现在,还有另一种方法,但如果使用此方法,则下载时元数据不会保存在文件中。您可以使用SHOUTcast样式的元数据。基本上,Winamp和其他客户端(如VLC)发送请求标头Icy-MetaData: 1。这告诉服务器它支持SHOUTcast风格的元数据。在服务器响应中,您将每8KB左右插入一次元数据。基本上,你想要反过来我在这里详述的内容:https://stackoverflow.com/a/4914538/362536

最后,简单地添加ID3v2标签将以最佳方式解决您的问题,但我想提及备选方案,以防您需要其它方式。