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