2014-04-01 51 views
1

这听起来像是一个奇怪的请求。通过http响应的MP3元数据

我有一个PHP脚本从SoundCloud中提取一个mp3流,然后用正确的头文件重复这个流以允许WinAmp播放这个文件。但它只显示我有脚本运行的本地URL。在任何人询问之前,我在回应之前将ID3v1注入到文件中。 有什么办法可以为WinAmp提供来自php的元数据?

回答

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标签将以最好的方式解决你的问题,但是我想提及另一种选择以防万一你需要它其他。

相关问题