1

我正在开发一个音乐软件,我想使用XSPF 规范,因为它是一个标准,但有些东西我不明白。
或者它甚至不存在,因为规格的最后更新是...... 14 岁。

对于曲目,它们具有位置标签来设置歌曲的源文件。

    <track>
        <location>http://example.com/song_1.mp3</location>
    </track>

但是,如果使用我的代码,我不知道源文件的 URL,但我知道可以流式传输该曲目的一个或多个音乐服务的链接(spotify/soundcloud/...),这取决于什么用户能玩吗?

我可以,以及如何在我的 XSPF 中声明音乐服务上该曲目的一个或多个链接吗?

例如对于同一轨道:

https://geo.music.apple.com/be/album/_/1444279072?i=1444279073&mt=1&app=music&at=1000lHKX
https://open.spotify.com/track/6XBaTMiZa77Du2XEl1RNaa
https://www.deezer.com/track/66644816
https://music.amazon.com/albums/B082QWLFM7?trackAsin=B082QMC1C9&do=play
https://www.youtube.com/watch?v=PA3P1-aSvKQ
https://www.youtube.com/watch?v=vUes9-tFWm4

也许就像声明几个位置标签一样简单?

要呈现的资源的 URI。可能是音频资源,但也可以是任何类型的具有已知持续时间的资源,例如视频、SMIL 文档或 XSPF 文档。此元素中定义的资源的持续时间定义了呈现的持续时间。xspf:track 元素可以包含零个或多个位置元素,但用户代理不得呈现多个命名资源。

<track>
    <location>https://geo.music.apple.com/be/album/_/1444279072?i=1444279073&mt=1&app=music&at=1000lHKX</location>
    <location>https://open.spotify.com/track/6XBaTMiZa77Du2XEl1RNaa</location>
    <location>https://www.deezer.com/track/66644816</location>
    <location>https://music.amazon.com/albums/B082QWLFM7?trackAsin=B082QMC1C9&do=play</location>
    <location>https://www.youtube.com/watch?v=PA3P1-aSvKQ</location>
</track>

还是应该使用标识符标签来完成?

此资源的规范 ID。可能是哈希或其他与位置无关的名称,例如 MusicBrainz 标识符。必须是合法的 URI。xspf:track 元素可以包含零个或多个标识符元素。

例如,URI http://musicbrainz.org/track/7e1d6f5f-0ac3-4889-8b57-506a67b459fc.html 是特定歌曲的标识符,但取消引用该标识符不会产生歌曲的副本。

或者使用链接标签——这是我的第一个想法,但我越来越不确定它是为此设计的?

链接元素允许在不使用 XML 名称空间的情况下扩展 XSPF。xspf:track 元素可以包含零个或多个链接元素。

文档对此并不十分明显。

任何人都可以帮忙吗?

谢谢 !

4

1 回答 1

1

您应该将标识符元素 ( http://xspf.org/xspf-v1.html#rfc.section.4.1.1.2.14.1.1.1.2 ) 用于 Spotify 链接等内容。

info 元素也可以做你需要的(http://xspf.org/xspf-v1.html#rfc.section.4.1.1.2.14.1.1.1.6),但你只能有一个轨道,所以你不能涵盖超过一项流媒体服务。

关于自上次规范更新以来的多年,也许是时候研究一个了。一个有福的 JSON 版本会很有用。

发现规范没有清楚地传达这些信息是很有成效的。在我们编写规范的时候,功能最强大的互联网音乐是网络服务器上的 MP3。现在流媒体服务可以完成这项工作。我们可以通过更新文档来解决这个问题。例如, http: //xspf.org/quickstart/上的示例播放列表可以显示如何执行此操作。

于 2020-03-24T17:14:28.173 回答