代码之家  ›  专栏  ›  技术社区  ›  Sora3087

通过http响应的MP3元数据

  •  1
  • Sora3087  · 技术社区  · 12 年前

    这听起来很奇怪。

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

    1 回复  |  直到 12 年前
        1
  •  0
  •   Community Mohan Dere    9 年前

    为了澄清,您正在有效地代理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标签将以最佳方式解决您的问题,但我想提到另一个选项,以防您需要它来做其他事情。

    推荐文章