这听起来像是一个奇怪的要求。
我有一个 PHP 脚本从 SoundCloud 中提取一个 mp3 流,并使用正确的标题重复该流以允许 WinAmp 播放该文件。但它只显示我运行脚本的本地 url。在有人问之前,我在回显之前将 ID3v1 注入到文件中。有没有办法为 WinAmp 提供来自 php 的元数据?
这听起来像是一个奇怪的要求。
我有一个 PHP 脚本从 SoundCloud 中提取一个 mp3 流,并使用正确的标题重复该流以允许 WinAmp 播放该文件。但它只显示我运行脚本的本地 url。在有人问之前,我在回显之前将 ID3v1 注入到文件中。有没有办法为 WinAmp 提供来自 php 的元数据?
澄清一下,您实际上是从 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 标签会以最好的方式解决您的问题,但我想提一下替代选项,以防您需要它来做其他事情。