0

XSPFドキュメントを解析するために、仕様では、レンダリングされるリソースの URI を定義するために、要素に0<track>個以上の要素を含めることができる<location>と規定されています。例えば:

<?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 ファイル) の複数の場所?

  • または、上記の song_2 のように、さまざまなタイプのリソース (たとえば、複数の場所を使用してトラックの Ogg Vorbis バージョンと MP3 バージョンの両方を提供する) に対して?

  • それとも両方?

現在、VLC と Audacious はどちらも、利用できない場合でも、最後<location>に提供された aを使用します。<track>したがって、彼らは単に最後の要素だけを使用しているように見えますが<location>、これは仕様が意図しているようには見えません。いずれにしても、上記の解決ケースのいずれも実行しません。

<track>明らかに、これらの場所がどのように解釈されるかによって、要素を含む要素のリゾルバの期待される動作が変わります<location>。最初のケースは優れたフォールバック ソリューションを提供します。私にとってさらに興味深いことに、2 番目のケースは、たとえば M3U と PLS で行う必要があるように、Ogg Vorbis 用に 1 つ、トラックの MP3 バージョン用に 1 つ、2 つのプレイリストが必要なケースを単純化します。

したがって、XSPF<location>で単一の複数の要素を処理/解決するための標準または推奨される動作はありますか?<track>

ありがとう

4

1 に答える 1

2

私は仕様の作成者の 1 人として話します。

location 要素のカーディナリティは「0 以上」です。これは、言及した両方のユース ケース (フォールバックと代替メディア タイプ) をサポートする目的で、「0 または 1」の代わりに選択されました。

最後の場所のみを使用して VLC と Audacious が行うことは、正しくない実装です。

とはいえ、私たちの戦略は、弱いリゾルバーを簡単に構築できるようにすることと、強力なリゾルバーを構築できるようにすることでした。冗長な場所のサポートを追加することで、VLC または Audacious が時間の経過とともに強化された場合、それは期待どおりに機能するプロセスです。

于 2016-12-12T21:38:07.627 に答える