【问题标题】:multiple <location> elements per <track> in XSPFXSPF 中每个 <track> 有多个 <location> 元素
【发布时间】:2016-12-12 13:15:47
【问题描述】:

为了解析XSPF 文档,specification 声明a &lt;track&gt; element can have zero or more &lt;location&gt; 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 都使用 &lt;track&gt; 中提供的最后一个 &lt;location&gt;,即使它不可用。因此他们似乎只使用了最后一个 &lt;location&gt; 元素,这似乎不是规范的意图。无论哪种方式,他们都不会执行我上面列出的任何解决案例。

显然,如何解释这些位置会改变包含 &lt;location&gt; 元素的 &lt;track&gt; 元素的解析器的预期行为。第一种情况提供了一个很好的后备解决方案。对我来说更有趣的是,第二种情况简化了需要 2 个播放列表的情况,1 个用于 Ogg Vorbis,1 个用于 MP3 版本的曲目,例如 M3U 和 PLS 必须这样做。

因此:对于在 XSPF 中为单个 &lt;track&gt; 处理/解析多个 &lt;location&gt; 元素是否有标准或推荐的行为?

谢谢

【问题讨论】:

    标签: audio audio-streaming playlist resolver xspf


    【解决方案1】:

    我作为规范的作者之一发言。

    位置元素的基数是“零或更多”。选择此选项而不是“零或一”是为了支持您提到的两种用例(后备和备用媒体类型)。

    VLC 和 Audacious 仅使用最后一个位置的做法是不正确的实现。

    也就是说,我们的策略是让构建一个弱解析器变得容易,并且可以构建一个强大的解析器。如果 VLC 或 Audacious 通过添加对冗余位置的支持随着时间的推移变得更强大,这就是所希望的过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2011-06-04
      • 2018-02-06
      • 1970-01-01
      • 2012-05-07
      • 2020-11-07
      相关资源
      最近更新 更多