[公告]
Blog

VLC播放器.XSPF列表制作教程 1

.xspf格式列表制作

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


没有评论

Leave a Reply