【问题标题】:How iTunes parses m3u filesiTunes 如何解析 m3u 文件
【发布时间】:2015-07-30 09:24:14
【问题描述】:

我有一个 m3u 文件 here。 当我下载文件并在 iTunes 中打开它时,程序成功开始播放流音频并向我显示艺术家姓名和歌曲标题。此外,iTunes 会发送通知更改曲目并显示艺术家姓名和歌曲名称!

我想知道 iTunes 是怎么猜到这个的?该文件没有艺术家列表,它只有流媒体音频的链接。当我转到文件中提到的address 时,我可以看到一个包含一些信息的网页。 iTunes 会解析此页面并查找艺术家姓名吗?不要这么认为……

谁能向我解释如何从 m3u 文件中获取歌曲信息,该文件仅包含指向音频流的链接,例如 iTunes 吗?非常感谢 Obj-C 或 Swift 中如何以编程方式执行此操作的示例代码!

【问题讨论】:

  • 这里有一个答案,尽管它从未被接受:stackoverflow.com/a/29629781/4076315
  • @BSMP 恐怕这个问题与我的不相似。在这个问题中,作者有带有歌曲信息的 m3u 文件,我只有一个带有音频流的 ip 链接的文件。但是 iTunes 仍然有歌曲信息,所以我很好奇它是如何得到它的。

标签: ios audio streaming itunes m3u


【解决方案1】:

它来自音频流本身(使用 Icecast 协议),而不是来自 m3u 文件。您可以通过打开 m3u 文件来证明这一点,将 HTTP url 放入其中,然后将其放入 VLC 中,您会看到轨道数据仍然存在。

关于这个问题的更多信息:How do I extract streamed "now playing" data embedded in an Icecast audio (radio) stream on Samsung Smart-TV

关于这个问题还有一些 obj-c 特定的东西:Getting SHOUTcast metadata on the Mac

这里是协议的解释:http://www.smackfu.com/stuff/programming/shoutcast.html

此外,如果您对我如何确定流是 Icecast 感到好奇,我打开 Wireshark 并通过“ip.src == 79.120.77.11”对其进行过滤,然后启动流,并在其中一个前几个数据包有一些数据以“icy-notice”开头,并提到了 Shoutcast。几包之后还有电台的标题。

【讨论】:

  • 谢谢,至少我知道该往哪个方向挖了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 2019-10-29
  • 2017-06-08
  • 2022-12-03
  • 1970-01-01
  • 2012-06-10
相关资源
最近更新 更多