从 MP3 Streaming 获取 ID3 标签

Posted

技术标签:

【中文标题】从 MP3 Streaming 获取 ID3 标签【英文标题】:Get ID3 tag from MP3 Streaming 【发布时间】:2015-05-10 10:03:24 【问题描述】:

我在从MP3 stream 恢复信息(ID3 标签)时遇到了困难。我希望这些信息用于在 radiomed 网站的主页上显示专辑封面和当前歌曲的标题。

更新


php 中,我使用了 PHP 的 ID3 库,但这个库自 2004 年以来就不是最新的,而在 javascript 中,我使用了 TagLib、MusicMetadata 和 id3js。结果是错误消息 (js) 和带有 var_dump($getID3) 的字符串 (0) // 这将返回带有从流中捕获的信息获取的对象。

结果应该是当前正在播放的歌曲的标题和艺术家。

我尝试使用 php & js 但失败了。

【问题讨论】:

你用的是什么库?结果是什么,结果应该是什么? 在 PHP 中,我使用了 PHP 的 ID3 库,但这个库自 2004 年以来就不是最新的,而在 Javascript 中,我使用了 TagLib、MusicMetadata 和 id3js。结果是带有 var_dump($getID3) 的错误消息 (js) 和字符串 (0) // 这将返回从流中获取的带有捕获信息的对象。 结果应该是当前正在播放的歌曲的标题和艺术家。 您应该编辑您的问题并添加一些给您带来麻烦的代码示例。 添加了从评论到问题的更新以便更好地理解 【参考方案1】:

这个例子可以帮助你 https://gist.github.com/fracasula/5781710

但它不会连续读取流,它只会获取第一个缓冲区并尝试它。 它可能会或可能不会返回当前曲目名称,这取决于。

我想,它需要改进,以继续读取流并检测每个缓冲区的轨道数据。 因此,您可以在任何需要的地方展示它。

【讨论】:

【参考方案2】:

如果你想直接从 mp3 获取 id3,你可以尝试使用 PECL 扩展

pecl install id3-0.2

然后使用id3_get_tag 函数:

<?php
   $tag = id3_get_tag( "path/to/example.mp3" );
   print_r($tag);
?>

但是这样做,我会搜索您的流媒体软件的文档,可能有一些 api 来获取流数据(json、xml、纯文本)

【讨论】:

以上是关于从 MP3 Streaming 获取 ID3 标签的主要内容,如果未能解决你的问题,请参考以下文章

使用 Java ID3 标签库从 MP3 文件中获取图像

拒绝从外部mp3获取不安全的标题“Content-Length”/读取ID3标签

如何从 MP3 ID3 标签中提取专辑封面?

使用 JavaFX MediaPlayer 从 MP3 读取 ID3v2 标签

使用 id3v2 获取 MP3 ID3 (V2) 标签

如何使用 php 获取我的 mp3 文件的 ID3 标签?