XSPF 中每个 <track> 多个 <location> 元素
multiple <location> elements per <track> in XSPF
用于解析 XSPF document, the specification states that a <track>
element can have zero or more <location>
elements to define the URI of a resource to be rendered。例如:
<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>
<track>
<location>http://example.com/song_1.ogg</location>
<location>http://mirror.xyz/example.com/song_1.ogg</location>
</track>
<track>
<location>http://example.com/song_2.ogg</location>
<location>http://example.com/song_2.mp3</location>
</track>
</trackList>
</playlist>
我的问题是这是否允许:
与上述 song_1 中相同类型的资源(例如原始源和镜像中的 MP3 文件)的多个位置?
或者对于不同类型的资源(例如,使用多个位置来提供 Ogg Vorbis 和 MP3 版本的曲目)如上文 song_2?
或者两者兼而有之?
目前 VLC 和 Audacious 都使用 <track>
中提供的最后一个 <location>
,即使它不可用。因此他们似乎只使用了最后一个 <location>
元素,这似乎不是规范的意图。无论哪种方式,他们都不会执行我上面列出的任何解决案例。
显然,这些位置的解释方式会改变包含 <location>
元素的 <track>
元素的解析器的预期行为。第一种情况提供了一个很好的后备解决方案。对我来说更有趣的是,第二种情况简化了需要 2 个播放列表的情况,1 个用于 Ogg Vorbis,1 个用于 MP3 版本的曲目,例如 M3U 和 PLS 就必须这样做。
因此:对于 XSPF 中单个 <track>
的 handling/resolving 多个 <location>
元素是否有标准或推荐的行为?
谢谢
我作为规范的作者之一发言。
location 元素的基数是 "zero or more." 选择它而不是 "zero or one" 是为了支持您提到的两种用例(回退和替代媒体类型)。
VLC 和 Audacious 只使用最后一个位置的做法是不正确的实现。
也就是说,我们的策略是让构建弱解析器变得容易,并且可以构建强大的解析器。如果 VLC 或 Audacious 随着时间的推移通过添加对冗余位置的支持而变得更强大,那么这个过程就会如期进行。
用于解析 XSPF document, the specification states that a <track>
element can have zero or more <location>
elements to define the URI of a resource to be rendered。例如:
<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<trackList>
<track>
<location>http://example.com/song_1.ogg</location>
<location>http://mirror.xyz/example.com/song_1.ogg</location>
</track>
<track>
<location>http://example.com/song_2.ogg</location>
<location>http://example.com/song_2.mp3</location>
</track>
</trackList>
</playlist>
我的问题是这是否允许:
与上述 song_1 中相同类型的资源(例如原始源和镜像中的 MP3 文件)的多个位置?
或者对于不同类型的资源(例如,使用多个位置来提供 Ogg Vorbis 和 MP3 版本的曲目)如上文 song_2?
或者两者兼而有之?
目前 VLC 和 Audacious 都使用 <track>
中提供的最后一个 <location>
,即使它不可用。因此他们似乎只使用了最后一个 <location>
元素,这似乎不是规范的意图。无论哪种方式,他们都不会执行我上面列出的任何解决案例。
显然,这些位置的解释方式会改变包含 <location>
元素的 <track>
元素的解析器的预期行为。第一种情况提供了一个很好的后备解决方案。对我来说更有趣的是,第二种情况简化了需要 2 个播放列表的情况,1 个用于 Ogg Vorbis,1 个用于 MP3 版本的曲目,例如 M3U 和 PLS 就必须这样做。
因此:对于 XSPF 中单个 <track>
的 handling/resolving 多个 <location>
元素是否有标准或推荐的行为?
谢谢
我作为规范的作者之一发言。
location 元素的基数是 "zero or more." 选择它而不是 "zero or one" 是为了支持您提到的两种用例(回退和替代媒体类型)。
VLC 和 Audacious 只使用最后一个位置的做法是不正确的实现。
也就是说,我们的策略是让构建弱解析器变得容易,并且可以构建强大的解析器。如果 VLC 或 Audacious 随着时间的推移通过添加对冗余位置的支持而变得更强大,那么这个过程就会如期进行。