从 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 标签的主要内容,如果未能解决你的问题,请参考以下文章
拒绝从外部mp3获取不安全的标题“Content-Length”/读取ID3标签