XSPF,发音为“spiff”,是Xiph支持的XML格式的播放列表。它是一种免费和开放的格式,因此可以很容易地,自由地用于共享播放列表。
例:
<?xml version="1.0" encoding="UTF-8"?> <playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1"> <title>播放列表</title> <trackList> <track> <title>教育台</title> <location>http://live.cetv.cn/video/s10001-1111111/index.m3u8</location> <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>0</vlc:id> <vlc:option>network-caching=1000</vlc:option> </extension> </track> </trackList> <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:item tid="0" /> </extension> </playlist>
VLC 扩展
XSPF支持扩展,允许应用程序添加特殊的数据。这些扩展可以出现在以下条目:
– playlist
– track
扩展格式在命名空间xmlns:vlc =“http://www.videolan.org/vlc/playlist/ns/0/ 中定义。
<playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/"> ... <extension application="http://www.videolan.org/vlc/playlist/0"> ... </extension> </playlist>
目前,扩展支持以下元素:
– vlc:node
– vlc:item
– vlc:id
– vlc:option
扩展名vlc:node和vlc:item用于指定如何显示不支持标准XSPF的列表树。
vlc:node
该元素将显示为播放列表中的节点。它显示为播放列表块的扩展名(在playlist/extension下)。只能指定其名称:
<vlc:node title="Node title"> [list of vlc:item or vlc:node] </vlc:node>
vlc:item
该元素表示播放列表项(而不是节点)。它显示为播放列表块的扩展名(在playlist/extension下)。它只包含一个track ID(见下面的vlc:id):
<vlc:item tid="42" />
vlc:id
此元素指定track的ID。它显示为track块的扩展(在playlist/trackList/track/extension下)。
<vlc:id>42</vlc:id>
id的值对应于vlc:item属性tid的值。请注意,每个vlc:id必须是不同的,每个条目,否则不能显示所有项。
vlc:option
此元素允许您向输入项添加选项。它显示为track块的扩展(在playlist/trackList/track/extension下)。
<vlc:option>option-name</vlc:option>
或者,如果该选项有一个值:
<vlc:option>option-name=option-value</vlc:option>
使用VLC扩展的XSPF示例
我们来总结一下这个例子。这个例子展示了通过 VLC options 把每个指定的属性带进列表
<?xml version="1.0" encoding="UTF-8"?> <playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/"> <title>Playlist</title> <location>D:/media/example.xspf</location> <trackList> <track> <title>DVD seconds 42 to 45 muted</title> <location>dvd://d:\@1</location> <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>3</vlc:id> <vlc:option>start-time=42</vlc:option> <vlc:option>stop-time=45</vlc:option> <vlc:option>no-audio</vlc:option> <vlc:option>some-option=100</vlc:option> </extension> </track> <track> <title>DVD seconds 49-55 unmuted (normal)</title> <location>dvd://d:\@1</location> <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>4</vlc:id> <vlc:option>start-time=49</vlc:option> <vlc:option>stop-time=55</vlc:option> </extension> </track> </trackList> </playlist>
以下是一个示例,显示如何在播放列表窗口中显示嵌套条目:
<?xml version="1.0" encoding="UTF-8"?> <playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/"> <title>Playlist</title> <location>D:/media/example.xspf</location> <trackList> <track> <title>Track 1</title> ... <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>0</vlc:id> </extension> </track> <track> <title>Track 2</title> ... <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>1</vlc:id> </extension> </track> <track> <title>Track 3</title> ... <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>2</vlc:id> </extension> </track> <track> <title>Track 4</title> <location>dvd://e:\@1</location> <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:id>3</vlc:id> <vlc:option>my-option=100</vlc:option> <vlc:option>start-time=42</vlc:option> <vlc:option>stop-time=45</vlc:option> <vlc:option>no-audio</vlc:option> </extension> </track> </trackList> <extension application="http://www.videolan.org/vlc/playlist/0"> <vlc:node title="Node 1"> <vlc:item tid="0" /> <vlc:item tid="1" /> <vlc:node title="Node 2"> <vlc:item tid="2" /> <vlc:item tid="3" /> </vlc:node> </vlc:node> </extension> </playlist>
这个播放列表的例子将显示为:
Playlist `- Node 1 |- Track 1 |- Track 2 `- Node 2 |- Track 3 `- Track 4
参考
VLC-wiki